网站搜索

typescript - 在 Angular 2 的 AOT 编译中,ngfactory 文件本身必须被编译吗?


每当我使用 ngc 编译 Angular 2 应用时,它会为每个组件创建 .ngfactory.ts 文件,然后将所有 TypeScript 编译为 JavaScript。

然而,当我第一次运行 ´ngc´ 时,它会创建 ngfactory 文件,但只将 其他 文件编译成 JavaScript。这意味着不会生成已编译的 ngfactory JavaScript 文件。

在第二次运行时,它确实也会编译 ngfactory 文件(可能是因为它们是在与源文件相同的文件夹中生成的)。

我的问题是:ngfactories 本身是否应该被编译?它会以任何方式影响应用程序吗?

答案#1

ngfactory 文件已经是编译后的输出,因此你不应再次编译它们。

最好为 ngfactory.ts 文件指定一个特殊目录。将其放在你的 tsconfig.json 中

"angularCompilerOptions": {
  "genDir": "compiled"
}

这将告诉 ngc 将生成的文件放入一个 compiled 文件夹中。