AOT编译器编译ngfactory文件

时间:2016-11-02 10:41:18

标签: angular angular2-aot angular-compiler-cli

我是AOT编译器的新手。

我使用以下选项将所有文件编译到'编译'目录:

"angularCompilerOptions": {
    "genDir": "compiled",
    "skipMetadataEmit" : true
}

但是当我运行'ngc'时,它会尝试编译新创建的.ngfactory文件,并在它们上面输入错误。

我试图删除'编译'目录并重新编译代码,但它又发生了。

我还尝试在tsconfig-aot.json文件中添加“exclude”键(就像我在typescript编译器中一样)并添加“编译”目录,但这没有帮助。

有什么想法吗?

====编辑====

可能有帮助的更多信息,我试图将'genDir'设置为应用程序目录之外的目录,然后我收到错误,说编译器找不到模块'app.module.ngfactory ”。

根据我的理解,这意味着它会尝试编译'.ngfactory'文件,因为我更改了main.ts:

import { AppModule } from "./components/app.module";

platformBrowserDynamic().bootstrapModule(AppModule);

为:

import { AppModuleNgFactory  } from "../compiled/client/components/app.module.ngfactory";

platformBrowser().bootstrapModuleFactory(AppModuleNgFactory);

这可能会导致编译器编译app.module.ngfactory,并从那里移动到'app.module.ngfactory'中的其他导入并尝试编译所有'.ngfactory'文件。

有意义吗?我更改了'main.ts'文件,就像谷歌在https://angular.io/docs/ts/latest/cookbook/aot-compiler.html

显示的那样

1 个答案:

答案 0 :(得分:1)

这是我的坏事。

编译器在ngfactory文件上显示错误,但并不意味着编译它们。

错误与原始组件的ts文件有关。

我必须修复ts文件中的错误,它解决了问题。

我很难理解即使应用程序在JIT中工作,AOT编译的东西也不同,而且更严格,可能会显示我需要处理的一些错误,在JIT中无关紧要。