【问题标题】:Console logging error on bundle.js instead of React componentbundle.js 而不是 React 组件上的控制台日志记录错误
【发布时间】:2017-03-26 04:33:18
【问题描述】:

我创建了一个适合我的 Webpack 构建 - 它有一个用于热重载的开发服务器和一个运行模板 html 文件并集成 bundle.js 文件的生产快速服务器。

这一切都很好,除了当我在我的开发服务器中工作时,控制台会给我这样的错误消息:

Uncaught Error: Expected the reducer to be a function.(…) bundle.js:36329

它将bundle.js 引用为错误源,而不是我正在使用的组件,这使得追踪错误源非常困难。

据控制台所知,我知道包含错误的是 bundle.js 文件,但我怎样才能让控制台记录预捆绑代码? (例如Component.js

提前致谢。

【问题讨论】:

  • 它无法直接指向组件,因为您使用的是捆绑包。更好的做法是在导致错误的行中添加一个断点并从那里检查

标签: javascript reactjs console webpack webpack-dev-server


【解决方案1】:
// webpack.config.js
module.exports = {
    ...
    devtool: '#eval-source-map',
    ...
};

添加这个会在控制台中记录错误,并在源代码中使用实际的组件名称和行号。但这允许用户查看代码?

【讨论】:

    【解决方案2】:

    对于 webpack 6.0.1。我应用以下内容登录浏览器控制台:

    //webpack.config.js
    module.exports = {
      ...
      devtool: 'source-map',
      ...
    }
    

    要在生产模式下消除大量日志记录并减少包大小,您可以使用“cheap-module-source-map”:

    //webpack.config.js
    module.exports = {
      ...
      devtool: 'cheap-module-source-map',
      ...
    }
    

    【讨论】:

      【解决方案3】:

      如果您使用的是最新的 webpack,即 v4,则需要编写此代码

          // webpack.config.js
          module.exports = {
            ...
            devtool: 'inline-source-map',
            ...
          };
      

      更新的文档: https://webpack.js.org/guides/development/#using-source-maps

      【讨论】:

      • 设置 mode: "development"devtool: 'inline-source-map'devtool: 'source-map' 对我不起作用 - 错误仍然引用 bundle.js 中极长的行,这些行被高度最小化和混淆,我无法理解(使用 webpack 5.61.0)。
      • 更新:作为参考,如果它对其他人有帮助,我使用的是UglifyJS Webpack Plugin - 当我在该插件配置中启用sourceMap: true 时,我可以在 chrome 开发工具中看到源映射。解决方案的灵感来自这个答案:stackoverflow.com/a/41889062
      【解决方案4】:

      您应该启用源映射以获得出色的调试体验。源映射会将您的包与您自己的代码链接,因此当发生错误时,错误消息将输出文件的行号,而不是包。默认情况下,源映射被 webpack 禁用,可以使用属性 'devtool' 启用,如下所示:

      // webpack.config.js
      module.exports = {
          ...
          devtool: '#eval-source-map',
          ...
      };
      

      以下是官方文档的链接: https://webpack.github.io/docs/configuration.html#devtool

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-02-13
        • 1970-01-01
        • 1970-01-01
        • 2020-02-12
        • 2021-09-23
        • 2019-03-31
        • 2017-03-31
        相关资源
        最近更新 更多