【问题标题】:AOT compiler compiles ngfactory filesAOT 编译器编译 ngfactory 文件
【发布时间】:2016-11-03 16:27:34
【问题描述】:

我是 AOT 编译器的新手。

我使用此选项将所有文件编译到“已编译”目录:

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

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

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

我还尝试在 tsconfig-aot.json 文件中添加“排除”键(就像我在 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

【问题讨论】:

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


    【解决方案1】:

    这是我的错。

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-04-02
      • 1970-01-01
      • 1970-01-01
      • 2019-03-01
      • 2018-02-14
      • 2017-05-03
      • 2017-03-10
      相关资源
      最近更新 更多