我已经创建了一个Webpack构建版本,它对我来说工作得很好-它有一个用于热重载的dev-server,以及一个运行模板html文件并集成bundle.js
文件的productionexpress服务器。
这一切都很棒,除了当我在dev-server中工作时,控制台会给我如下的错误消息:Uncaught Error: Expected the reducer to be a function.(…) bundle.js:36329
它引用bundle.js
作为错误的来源,而不是我正在使用的组件,这使得追踪错误的来源变得非常困难。
据我所知,控制台知道bundle.js
文件包含错误,但如何让控制台记录捆绑前代码?(例如Component.js
)
先谢了。
6条答案
按热度按时间pnwntuvh1#
您应该启用源Map以获得良好的调试体验。源Map会将您的包与您自己的代码链接起来,以便在发生错误时,错误消息将输出文件的行号,而不是包。默认情况下,源Map在webpack中禁用,但可以使用属性“devtool”启用,如下所示:
以下是官方文档的链接:https://webpack.github.io/docs/configuration.html#devtool
mwg9r5ms2#
添加这个代码会在控制台中记录错误,并在源代码中记录实际的组件名和行号,但这会允许用户查看代码吗?
col17t5w3#
对于webpack 6.0.1,我应用以下代码登录浏览器控制台:
要在生产模式下消除大量日志记录并减少包大小,您可以使用'cheap-module-source-map':
50few1ms4#
转到开发工具-〉开发工具设置-〉选择"首选项"选项卡-〉选中复选框-"启用JavaScript源代码Map"
希望这个有用。
8ehkhllq5#
如果您使用的是最新的webpack,即v4,您需要编写此
更新文件:https://webpack.js.org/guides/development/#using-source-maps
bvn4nwqk6#
对于使用craco的用户,
您可以通过以下方式实现此目标: