Webpack 如何使用UglifyJs或更简洁的网页包插件防止libs被弄乱?

Webpack 如何使用UglifyJs或更简洁的网页包插件防止libs被弄乱?,webpack,minify,uglifyjs,Webpack,Minify,Uglifyjs,只有在我将mangle.properties设置为true之前,使用简洁的webpack插件修改代码才有效。我也需要修改属性,但是如果我打开它,就会出现与所用lib相关的各种问题。因此,我希望将库源(节点_模块内部)排除在缩小/破坏流之外 我正在使用babel将所有内容从es6及更高版本传输到es5。顺便说一句,我正在使用Webpack4 看起来我面临的问题是,webpack中的所有缩小都只对最终输出的javascript有效,而不是源文件 我试着把lib的类名放在mangleoptions中的

只有在我将mangle.properties设置为true之前,使用简洁的webpack插件修改代码才有效。我也需要修改属性,但是如果我打开它,就会出现与所用lib相关的各种问题。因此,我希望将库源(节点_模块内部)排除在缩小/破坏流之外

我正在使用babel将所有内容从es6及更高版本传输到es5。顺便说一句,我正在使用Webpack4

看起来我面临的问题是,webpack中的所有缩小都只对最终输出的javascript有效,而不是源文件

我试着把lib的类名放在mangleoptions中的保留数组中,但到目前为止没有帮助。我也试着以另一种方式工作;在terserplugin上使用正则表达式,仅将插件用于最重要的对象,以缩小和破坏,但这并没有按预期工作,可能是因为babel transpiling。而不是我想要的。我想缩小/篡改至少所有我拥有的代码,并且更喜欢LIB也要缩小,但不要篡改

我以前使用过uglifyjs网页包插件和uglifyjs-3-webpack-plugin,但现在改用了更简洁的网页包插件,因为这似乎更能证明未来,并且有更多的支持。因此,如果任何人都知道在terser webpack插件(它与uglifgyjs具有几乎相同的配置/api)上实现此功能的解决方案,那么这将是首选。但我对其他插件的答案也持开放态度,如果可行的话,我可能会切换回去


几天来,我一直在努力让它发挥作用,并且一直在搜索terserplugin的所有(!)设置,以查找我需要的内容,但找不到它。希望这里的任何人都能帮助我。谢谢

我以为我不知道怎么做,但我发现了

根据terser webpack插件文档,您可以使用
测试来选择要缩小的文件,如下所示:

module.exports = {
  optimization: {
    minimizer: [
      new TerserPlugin({
        test: /\.js(\?.*)?$/i,
      }),
    ],
  },
};

因此,您需要添加2个新的TerserPlugin(…)
,一个测试您确实想要破坏属性的文件(并且在选项中启用了破坏属性),另一个测试您不想要破坏属性的文件(并且破坏属性被禁用)。

Hi@mrT,您同时解决了这个问题吗?我对解决方案非常感兴趣。这里的问题也是一样。。。!这里是简短的维护者。不打算添加答案,因为这看起来像是非常高级的网页包,但您需要使用
regex
选项使其更安全。我正在更改此功能的文档,以包含一些关于如何使其更安全的建议(其中之一是避免使用模块绑定器),并且此文档将在我满意时提供。