是否有任何配置设置会删除这些空注释和空格?
我的构建命令是ng build --environment prod --progress false --target production
,tsconfig是:
{
"compileOnSave": false,
"compilerOptions": {
"alwaysStrict": true,
"baseUrl": "/",
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"forceConsistentCasingInFileNames": true,
"lib": [ "es2015", "dom" ],
"module": "es2015",
"moduleResolution": "node",
"newLine": "CRLF",
"noFallthroughCasesInSwitch": true,
"noImplicitAny": true,
"noImplicitReturns": true,
"noUnusedLocals": true,
"noUnusedParameters": false,
"outDir": "./dist/out-tsc",
"removeComments": true,
"skipDefaultLibCheck": true,
"skipLibCheck": true,
"strictNullChecks": true,
"target": "es5",
"typeRoots": [ "./node_modules/@types" ]
}
}
@ angular / cli:1.0.4
节点:7.2.1
os:win32 x64
@angular / common:4.1.3
谢谢。
答案 0 :(得分:4)
这是根据您的Angular指令,标记,条件(如果,...)生成的,因此需要空格。如果你删除它然后它将不会表现良好所有双向绑定将消失。这些空间确定 角度DOM 将如何呈现并绑定到模型和变量。评论还会跟踪新DOM元素将呈现的位置(如果条件和其他条件)。
请参阅此链接以获取更多信息:https://github.com/angular/angular.js/issues/8722
答案 1 :(得分:2)
Angular需要这些评论来跟踪许多内容,例如在哪里呈现*ngIf
内容
如此长的故事短评论需要在你的HTML或Angular中,根本不起作用。
答案 2 :(得分:2)
这些评论中的每一条都是ViewContainerRef
,Angular用它来保留可以渲染视图的表达式。
当你有一个ngIf
时,如果表达式被评估为false,显然Angular不会渲染该元素,但是一旦它变为true,它将呈现元素,那么它如何知道放置在哪里它?
<div *ngIf="expression"></div>
当然还有其他表达式评估和视图模板绑定,但ngIf
是最容易理解的
这些评论的来源。