Vue-Cli-保留类名称Webpack UglifyJS

时间:2019-05-23 11:17:39

标签: webpack uglifyjs vue-cli-3

经过数小时的调试,测试和完全崩溃后,我找不到一种方法来禁用使用UglifyJS for Webpack和Vue-CLI丑化的类/函数名称。

我尝试了此方法及其组合:

optimization: {
    minimizer: [
        new UglifyJsPlugin({
            uglifyOptions: {
                keep_classnames: true,
                keep_fnames: true,
                compress: {
                    keep_classnames: true,
                    keep_fnames: true,
                },
                mangle: {
                    keep_classnames: true,
                    keep_fnames: true,
                },
            },
        }),
    ]
},
plugins: [
    new UglifyJsPlugin({
        uglifyOptions: {
            keep_classnames: true,
            keep_fnames: true,
            compress: {
                keep_classnames: true,
                keep_fnames: true,
            },
            mangle: {
                keep_classnames: true,
                keep_fnames: true,
            },
        },
    }),
],

似乎没有任何效果。我只是不能禁用丑陋的类名。

我需要依赖函数和类名,但是所有的类(更确切地说是Vue组件名-我正在使用基于类的组件)都被重命名为E作为类名。

有人可以帮我解决这个问题吗?

谢谢。

1 个答案:

答案 0 :(得分:1)

我能够通过以下方式保留类名(包括Vue.js组件):

module.exports = {
  chainWebpack: config => {
    config.optimization
      .minimizer('terser')
      .tap(args => {
        const { terserOptions } = args[0]
        terserOptions.keep_classnames = true
        terserOptions.keep_fnames = true
        return args
      })
   }
}

credits