DevTools 无法为 webpack:///node_modules//..js.map 加载 SourceMap HTTP 错误:状态码 404,net::ERR_UNKNOWN_URL_SCHEME

tom*_*013 43 google-chrome-devtools webpack

我创建了一个简单的基于 webpack 的项目来学习 snabbdom。一切正常,除了 sourcemap 加载失败:

在此处输入图片说明

我不知道是谁的问题(webpack,chrome)。有知道的人吗?

繁殖步骤:

git clone https://github.com/tomwang1013/snabbdom-test.git
npm install
npm run dev
Run Code Online (Sandbox Code Playgroud)

Rok*_*nis 36

您尝试加载的源映射node_modules位于 webpack 包中而不是它的一部分。“如果不提取并处理成 webpack bundle 的源地图,浏览器可能会误解源地图数据” ref。加载应用程序时,Chrome 开发工具控制台中会出现“ERR_UNKNOWN_URL_SCHEME”。

要将node_module源映射处理为 webpack 包,请使用source-map-loaderloader。这将修复控制台警告。

将依赖添加到package.json

"devDependencies": {
        "source-map-loader": "^1.0.0",
        ...
      }
Run Code Online (Sandbox Code Playgroud)

更新webpack.config.js

module: {
rules: [
  {
    test: /\.js$/,
    enforce: 'pre',
    use: ['source-map-loader'],
  },
],
Run Code Online (Sandbox Code Playgroud)

},

通常,要为snabbdom-test项目生成源映射,您可以使用SourceMapDevToolPlugin.

更新webpack.config.js

const { SourceMapDevToolPlugin } = require("webpack");

plugins: [
  new SourceMapDevToolPlugin({
    filename: "[file].map"
  }),
...
],
Run Code Online (Sandbox Code Playgroud)


小智 22

更新 webpack.config.js

module.exports = {
    // ...
    entry: {
      "app": "src/app.js"
    },
    output: {
      path: path.join(__dirname, 'dist'),
      filename: "[name].js",
      sourceMapFilename: "[name].js.map"
    },
    devtool: "source-map"
    // ...
};
Run Code Online (Sandbox Code Playgroud)

详细在https://blog.sentry.io/2018/10/18/4-reasons-why-your-source-maps-are-broken

  • 这仅包含源映射中的源内容,它不允许浏览器获取源本身,因为“sources”数组中的值仍以“webpack://”开头。 (2认同)

Naf*_*fis 18

添加devtool: 'eval-source-map'到 webpack.config 的最顶层

  • 有关此设置和其他“devtool”设置的详细信息,请参阅 [Webpack 文档](https://webpack.js.org/configuration/devtool/)。 (3认同)
  • 现代 Webpack 最简单的解决方案 (2认同)

小智 10

  devtool: "eval-cheap-source-map"
Run Code Online (Sandbox Code Playgroud)

将此添加到您的 webpack 配置中,就是这样。

  • 有关此设置和其他“devtool”设置的详细信息,请参阅 [Webpack 文档](https://webpack.js.org/configuration/devtool/)。 (2认同)