angular ng build --prod不保留类的名称(MyClass.constructor.name)

时间:2018-12-10 13:33:59

标签: angular typescript webpack

在angular 7生产模式下编译时,我无法保留类名。我尝试了Terser插件的不同参数,但没有一个能解决此问题。 有解决这个问题的方法吗?还是MyClass.constructor.name之外的另一种选择。

提前谢谢

在自定义Webpack配置下面

const TerserPlugin = require('terser-webpack-plugin');

module.exports = {
    optimization: {
        minimizer: [
            new TerserPlugin({
                parallel: true,
                terserOptions: {
                    keep_classnames: true,
                    mangle: false
                }
            })
        ]
    }
};
  • @ angular-builders / custom-webpack“:” ^ 7.1.1“
  • @ angular-devkit / build-angular“:” ^ 0.11.2“
  • @ angular / cli”:“ ^ 7.0.4”,

1 个答案:

答案 0 :(得分:1)

与其他任何经过优化的Javascript代码一样,处于生产模式的Angular应用程序会经历一个缩小过程,该过程会将所有类,函数和变量名称更改为最小名称(通常为一个字母),以减小加载的包大小。因此,您不能依赖MyClass.constructor.name并将其与静态值进行比较。