我正在使用BitcoinJS构建应用程序,并且发现使用-p
标志会导致webpack破坏某些部分,从而破坏了生成事务的能力。
我被建议在配置中使用noParse
和alias
,这会使问题变得更糟(整个应用程序根本不会加载)。
到目前为止,除了关闭生产之外,我还没有找到任何解决方法(这会在javascript文件中留下各种奇怪的东西,包括我的本地开发路径)。
此处提供的示例项目(包含安装说明以及如何重现):https://github.com/Someguy123/example-webpack-issue
编辑/更新:@bebraw提供了一个有效的解决方案,如果有其他人希望在实际操作中看到它,则可以在示例项目的fixed
分支上找到该解决方案。
答案 0 :(得分:3)
问题是,在您的情况下,Uglify默认情况下会破坏太多。根据{{3}}说明,您需要排除某些名称,如下所示:
plugins: [
new webpack.optimize.UglifyJsPlugin({
mangle: {
except: [
'Array', 'BigInteger', 'Boolean', 'Buffer',
'ECPair', 'Function', 'Number', 'Point'
]
}
})
]
配置插件后使用webpack
代替webpack -p
。
它会使得到的束稍大一点,但它会起作用。
另一种方法是在其他地方单独为 bitcoinjs-lib 生成捆绑包,然后使用它。你也不得不在那里考虑一下,但它会使你的项目更整洁。