Angular应用程序中的空注释

时间:2017-05-24 20:26:27

标签: angular angular-cli tsconfig

是否有任何配置设置会删除这些空注释和空格?

enter image description here

我的构建命令是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

谢谢。

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是最容易理解的

这些评论的来源。