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

是否可以告诉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生产版本缩短了名称,因此在为每个装饰器创建验证上下文时引入了冲突。

sdwdwz 回答:Angular生产版本不能缩短类名吗?

您可以尝试禁用优化:

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

ng serve --prod --optimization=false

optimization文件中还有一个用于构建器配置的angular.json标志:

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

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

我确定这会增加捆绑包的尺寸。对于这种事情,这里没有任何更精细的控制,而且我不认为自定义构建器会有所帮助。

一段时间以来,我们没有ng eject选项来创建自定义WebPack版本,但是您可能会找到一些在线示例来了解如何手动执行。 Angular 9发布后,进行更新将很痛苦。

也许您正在使用的该库专用于NodeJS,而不是Web浏览器。

本文链接:https://www.f2er.com/2815887.html

大家都在问