【问题标题】:SASS sourcemaps not working in Google ChromeSASS 源地图在 Google Chrome 中不起作用
【发布时间】:2019-04-02 15:58:49
【问题描述】:

我启用了 CSS 源映射,但 Google Chrome 的行为就像它们被禁用一样。在我查看的所有资源中,我需要做的就是在 DevTools 首选项中启用源映射。它显然在那里启用:

源地图位于我的 CCS 文件旁边,如下所示:

在 DevTools > Elements > Styles 中,只有 CSS 文件,没有 SCSS 或 SASS:

这是我在 Gruntfile.js 中的 grunt-contrib-sass 配置:

    sass: {
        dist: {
            files: [{
                expand: true,
                cwd: './src/',
                src: ['**/*.css', '**/*.scss', '**/*.sass'],
                dest: './dist',
                ext: '.css',
                sourcemap: 'auto',
            }],
            options: {
            }
        }
    },

此站点在 OSX 上通过 grunt serve 提供服务,源映射由 grunt-contrib-sass 生成。

真正奇怪的是,我有 99% 的把握在我第一次设置它之后就看到它工作正常。在那之后我没有改变任何东西......

尝试调试此问题的下一步是什么?我是否应该能够查看 Chrome 是否正在向 .map 文件发出(失败?)请求?我错过了什么吗?


更新:我想我已经确定地图没有被加载,因为 sourceMappingURL 不存在于编译的 CSS 中。我已经打开了a new issue for that

【问题讨论】:

  • 你可以尝试从 devtools->settings 中“恢复默认值并重新加载”吗?
  • 好的,这样做了,然后重新启动了服务器。还是一样。
  • 你系统中安装的 sass 版本是什么?
  • 你需要至少 3.4 才能使 sourcemap 工作github.com/gruntjs/grunt-contrib-sass#sourcemap
  • 我不认为 grunt-contrib-sass 可以与 npm sass 一起使用,npm sass 是 sass 的不同实现,grunt-contrib 是为与 gem sass(ruby 版本,而不是 dart sass)一起工作而编写的.配置语法和这两个实现之间的一切都不同

标签: css google-chrome sass source-maps grunt-contrib-sass


【解决方案1】:

事实证明,自动前缀在编译后的 CSS 上运行并去除了 sourceMapURL 注释,现在这样做是有道理的,因为除非你打开了自动前缀源映射(我没有) ,它会使源映射不真实。我从中学到了一件很酷的事情,自动前缀显然能够使用 Sass 源映射来使其成为自己的,并保持所有内容与 Sass 文件一致。

我真的希望自动前缀找到源映射时有一个警告,但它本身没有启用源映射,因为很明显任务不应该生成不会使用的源映射。

如果我能发布我的整个 Gruntfile,我会更有可能更快地得到答案,但这是很多东西,我正在尝试缩减到我认为相关的代码。该死。

【讨论】:

  • 我也遇到了源地图无法正常工作的问题。在尝试修复它 30 分钟后,我发现了您的评论。我的 Gruntfile 中也运行了 autoprefixer,删除它为我解决了这个问题。谢谢!
【解决方案2】:

在 cmets 中看到您的回复后。我将此添加为答案

你的 sourcemap 没有加载的原因是你使用 grunt-contrib-sass 和 dart sass。

Dart-sass 是最近对 ruby​​ sass 的重写。 Grunt-contrib-sass 是为与 Ruby sass 一起工作而开发的。

所以我建议你卸载 sass。并进行 ruby​​ sass 的 gem 安装。或者将 sass 配置的语法更改为新的配置 https://www.npmjs.com/package/sass。但我不确定这是否适用于当前设置。所以推荐前一种方案。

可以在此处找到 grunt contrib 的源映射要求 https://github.com/gruntjs/grunt-contrib-sass#sourcemap

【讨论】:

  • 要么卸载 node-sass,然后安装 gem install sass 并使用 grunt-contrib-sass(或)卸载 grunt-contrib-sass 使用 grunt-sass 和 node-sass。您遇到了兼容性问题
  • 我现在使用 Ruby Sass 3.6.0 和 grunt-contrib-sass 构建它没有错误。源地图仍然无法正常工作,并且仍然没有在 CSS 中看到 sourceMappingURL。所以我想我会改用 grunt-sass。
  • 还是没有运气。我再次更新了我的问题,并开始了一个新问题:stackoverflow.com/questions/53055629/…
猜你喜欢
  • 1970-01-01
  • 2013-07-14
  • 2013-11-18
  • 2011-04-01
  • 1970-01-01
  • 2016-05-11
  • 1970-01-01
  • 2012-09-30
  • 2017-09-03
相关资源
最近更新 更多