如何解决Webpack 用公共路径替换 require
我想手动解析源映射以进行一些堆栈跟踪操作。为此,我使用了流行的 source-map 模块。
要在浏览器中运行该模块,我必须将路径传递给 Web 程序集。如*:
require("source-map/lib/mappings.wasm");
sourceMap.SourceMapConsumer.initialize({
"lib/mappings.wasm": "lib/mappings.wasm"
});
* 这是伪代码,因为我实际上使用的是 Scala.js 但这与问题无关。
我已将 webpack 配置为复制该文件:
test: /\.wasm$/,type: 'javascript/auto',use: [
{
loader: 'file-loader',options: {
name: '[name].[ext]',outputPath: 'lib',publicPath: 'lib'
}
}
]
这一切都很好。
我想知道是否可以让 webpack 将 require 替换为公共路径?类似的东西:
sourceMap.SourceMapConsumer.initialize({
"lib/mappings.wasm": require("source-map/lib/mappings.wasm");
)}
我见过一些看起来很时髦的 require 语句,例如 require("file-loader!source-map/lib/mappings.wasm")
,但我不知道它的语法是什么。有相关文档吗?
解决方法
所以我一直在查看加载器的更多文档,并意识到文件加载器可能已经完全按照我的建议做了,并且确实如此。我认为这对于有经验的 webpack 用户来说是显而易见的,但对我来说却一点也不明显。
所以解决办法是:
sourceMap.SourceMapConsumer.initialize({
"lib/mappings.wasm": require("source-map/lib/mappings.wasm");
)}
尝试指定加载器的类型是行不通的:
sourceMap.SourceMapConsumer.initialize({
"lib/mappings.wasm": require("file-loader!source-map/lib/mappings.wasm");
)}
无论出于何种原因,这都使用散列名称而不是错误的真实公共路径。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。