繁体   English   中英

Angular 生产版本可以不缩短类名吗?

[英]Can the Angular production build not shorten class names?

是否可以告诉 Angular 生产版本不要缩短类名?

类似`ng serve -o --prod=true --abbreviateClassName=false

我遇到的问题是我正在使用这个库:

https://github.com/fireflysemantics/validator/

它允许我们装饰类属性以验证它们。

由于 Angular 缩短了类名,我收到如下错误:

main.2876a5e2eb85f08784d9.js:1 Uncaught Error: The ValidationContainer 
      already contains context with signature t_e_sku.
    at Function.t.addValidationContext 

装饰器由ConstructorName_propertyName键控,并且由于 Angular 生产版本缩短了名称,因此在为每个装饰器创建验证上下文时会引入冲突。

您可以尝试禁用优化:

https://github.com/angular/angular-cli/wiki/build

ng serve --prod --optimization=false

angular.json文件中还有一个 builder 配置的optimization标志:

      "architect": {
        "build": {
          "builder": "@angular-devkit/build-angular:browser",
          "options": {
            "optimization": false

我不确定这个标志是否与上面的相同。

我相信这会增加捆绑包的大小。 对于这类事情,这里没有任何更精细的控制,我认为自定义构建器不会有帮助。

我们有一段时间没有使用ng eject选项来创建自定义 WebPack 构建,但您可能会找到一些有关如何手动执行此操作的在线示例。 Angular 9 出来后更新会很痛苦。

也许您使用的这个库是为 NodeJS 而不是 Web 浏览器设计的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM