[英]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.