我有一个ReactJS项目,我想在其中使用名为html5-qrcode的Barcode-Scanner npm模块,但我总是得到这个错误:Failed to parse source map from 'C:\...\node_modules\html5-qrcode\third_party\index.js.map' file: Error: ENOENT: no such file or directory, open 'C:\...\node_modules\html5-qrcode\third_party\index.js.map'
还有一些错误,如:(为便于阅读而分开)
警告in ./node_modules/html5-qrcode/esm/camera/core-impl.js Module Warning (from ./node_modules/source-map-loader/dist/cjs.js):
失败to parse source map from 'C:\...\node_modules\src\camera\core-impl.ts' file: Error: ENOENT: no such file or directory, open 'C:\...\node_modules\src\camera\core-impl.ts'
我认为这可能是一个TS错误,因为第二个错误部分的每个文件都有一个.ts结尾,所以我做了一个新的ReactTS项目,里面有所有的组件和co,但是我仍然得到同样的错误。
我认为这可能是一个TS错误,因为第二个错误部分的每个文件都有一个.ts结尾,所以我做了一个新的ReactTS项目,里面有所有的组件和co,但是我仍然得到同样的错误。
1条答案
按热度按时间qzwqbdag1#
看起来npm软件包的源代码Map有问题,webpack的source-map-loader模块无法处理它们,这并不影响应用程序本身,但是所有这些警告都很烦人。
我遇到了两个解决方案:要么强制源代码Map加载器跳过有问题的包,要么完全忽略源代码Map警告。
要实现这两种解决方案中的任何一种,都需要能够覆盖
webpack.config.js
,如何覆盖它实际上取决于运行React应用程序所使用的框架(我使用NX进行了设置)溶液1:忽略源Map警告(最简单)
将
ignoreWarnings: [/Failed to parse source map/]
添加到您的webpack配置中。您的webpack.config.js看起来与此有很大的不同,其思想是用它应该忽略的消息模式添加(或覆盖)ignoreWarnings。
溶液2:跳过问题包的源Map加载(Cleanest?)
这里的想法是覆盖source-map-loader规则,如果当前资源与regex匹配,则跳过它的执行。在我的例子中,我希望跳过任何包含@zxing的资源。
我试过使用exclude选项,但是没有成功,我选择使用filterSourceMappingUrl。也许它对你有用。记住,路径必须是绝对的,所以你可能需要调整被排除的路径。More details here
希望这个有用。
干杯。