You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Firefox开发者工具无法配合Webpack CSS源映射正常工作

解决Firefox开发者工具无法识别Webpack CSS源映射的问题

我之前也碰到过一模一样的问题,Firefox 59.0b7这个早期beta版本对Webpack dev server生成的CSS源映射确实有兼容性坑,给你几个亲测有效的解决思路:

1. 检查Webpack的源映射配置

首先确保你的css-loader已经开启了source map,同时选对开发环境的devtool类型:

module.exports = {
  module: {
    rules: [
      {
        test: /\.css$/,
        use: [
          'style-loader',
          { loader: 'css-loader', options: { sourceMap: true } }
        ]
      }
    ]
  },
  // 开发环境优先用这个,比eval-source-map更兼容Firefox早期版本
  devtool: 'cheap-module-inline-source-map'
};

注意:别在开发环境用source-map(全量生成独立map文件),不仅编译慢,Firefox对它的解析也容易出问题;而eval-source-map生成的映射会被Firefox识别成blob URL,就是你碰到的情况。

2. 调整Firefox开发者工具设置

打开开发者工具后按F1进入设置面板,确认以下选项都已勾选:

  • 启用源映射
  • 启用CSS源映射
    另外可以尝试关闭「启用样式编辑器的工作区」选项,早期版本这个功能会干扰CSS源映射的解析逻辑。

3. 升级Firefox版本

59.0b7是2018年的beta版本,后续的正式版和开发者版修复了大量source map相关的bug,直接升级到最新的Firefox开发者版应该能解决80%的问题,这也是成本最低的解决方案。

4. 替换style-loader为mini-css-extract-plugin

style-loader会把CSS注入到JS chunk里,生成blob形式的URL,Firefox早期对这种方式的源映射支持很差。如果你的项目可以接受开发环境热重载稍微慢一点,可以换成mini-css-extract-plugin把CSS抽成单独文件:

const MiniCssExtractPlugin = require('mini-css-extract-plugin');

module.exports = {
  plugins: [new MiniCssExtractPlugin({ filename: '[name].css' })],
  module: {
    rules: [
      {
        test: /\.css$/,
        use: [
          MiniCssExtractPlugin.loader,
          { loader: 'css-loader', options: { sourceMap: true } }
        ]
      }
    ]
  },
  devtool: 'source-map'
};

抽成单独CSS文件后,源映射会直接关联真实的文件路径,Firefox就能正常识别并跳转了。

我当时是通过升级Firefox版本+调整devtool配置解决的问题,你可以先从升级浏览器开始试,应该能快速见效。

内容的提问来源于stack exchange,提问作者Robert Kusznier

火山引擎 最新活动