【问题标题】:Avoid Mangle Class Name in Angular 8在 Angular 8 中避免使用 Mangle 类名称
【发布时间】:2019-12-03 13:27:46
【问题描述】:

我在 Angular 8 中有一个单页应用程序。在这个应用程序中,我在 typescript 类中使用构造函数名称来执行一些操作。在开发中一切正常。

class User {
  GetClassName() {
     return this.constructor.name;
  } 
  // returns "User"
}

但是当我在生产模式下构建时:

npm run ng build -- --configuration=prod

Angular 执行了很多优化,包括 Uglify 类名

class User {
  GetClassName() {
     return this.constructor.name;
  }
  // returns "t"
}

所以我的构造函数名称是 Now t 而不是 user。 如何配置 Angular Build 以避免 Uglify 某些类名或所有类名?

似乎是什么时候可以替换 mangle 选项,但我不会在我的 nodemodule 中这样做,但更喜欢使用构建时给出的自定义配置文件。

有人成功做到了吗?

谢谢大家

【问题讨论】:

  • 请改进问题。它可能会误导您正在寻找的内容不准确。通过对您希望完成的任务进行完整解释,并在可能的情况下添加代码来澄清,避免投反对票并增加正确答案的机会。
  • 我不需要这种功能。谢谢

标签: angular typescript uglifyjs


【解决方案1】:

来自:Angular-cli : How to ignore class names from being minified

Angular cli builder 支持 NG_BUILD_MANGLE、NG_BUILD_MINIFY、NG_BUILD_BEAUTIFY 节点环境参数(在版本 8 中签入)。

您可以在运行 npm 脚本时通过以下方式设置它们:env NG_BUILD_MANGLE=false NG_BUILD_MINIFY=false NG_BUILD_BEAUTIFY=true ng build --prod

这将导致输出未缩小,但仍会应用摇树和其他优化(与仅关闭优化相比)。

【讨论】:

    【解决方案2】:

    @rdethurens 你能添加任何关于你正在寻找什么的例子吗?我认为您可以在要更改添加 ngClass 的 html 标记中添加自定义类。

    例如:

    <div [ngClass]="myClass">...</div>
    

    【讨论】:

    • 感谢您的回答,我编辑我的第一篇文章以添加示例!
    猜你喜欢
    • 2020-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-05
    • 1970-01-01
    • 1970-01-01
    • 2012-07-21
    • 2016-08-15
    相关资源
    最近更新 更多