如何修复Webpack在生产环境中混淆我的代码?

3
我正在使用BitcoinJS构建一个应用程序,发现使用-p标志会导致webpack破坏某些部分,从而破坏了生成交易的能力。
有人建议在配置中使用noParsealias,但问题变得更严重了(整个应用程序根本无法加载)。
到目前为止,我没有找到任何解决方法,除了关闭生产模式(这会在javascript文件中留下各种奇怪的东西,包括我的本地开发路径)。
此处提供示例项目(包括安装说明和如何复制问题):https://github.com/Someguy123/example-webpack-issue 编辑/更新:@bebraw提供了可行的解决方案,在示例项目的fixed分支中可用,如果其他人想看到它的操作方式。
1个回答

4
问题在于在您的情况下,Uglify默认混淆了太多内容。根据bitcoinjs-lib的说明,您需要像这样排除某些名称:
plugins: [
    new webpack.optimize.UglifyJsPlugin({
        mangle: {
            except: [
                'Array', 'BigInteger', 'Boolean', 'Buffer',
                'ECPair', 'Function', 'Number', 'Point'
            ]
        }
    })
]

在配置插件后,请使用webpack而不是webpack -p

这会使生成的捆绑包稍微大一些,但它可以工作。

另一个选择是在其他地方为bitcoinjs-lib单独生成捆绑包,然后再使用它。你也必须考虑混淆问题,但这样可以让你的项目更加整洁。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接