0

我有一个简单的 Angular 6 应用程序,我正在尝试使用 AOT 进行编译。 我没有使用 Angular CLI。我有一个自定义生成器,它为我的项目启动搭建脚手架,并为我的组件、服务等搭建脚手架。

在 AOT 之前,一切都按预期工作。当我运行 ngc 来编译我的 Angular 应用程序时,一切都编译没有错误。但是,当我检查编译的 ngfactory javascript 文件时,我会从 node_modules 目录中看到 @angular/router/router.ngfactory 的引用。我似乎无法在任何地方找到此文件。

我的配置如下:

  • 节点 v.10.10.0
  • 角度 v.6.1.2
  • 打字稿 v.3.1.1
  • SystemJS v 0.21.4
  • 吞咽 v.3.9.1

我创建了一个示例存储库来复制该问题。

该仓库位于SlyGenerator.DemoWithAOT

要使用 JIT 正常启动应用程序,请运行以下命令“npm run start-dev”

重现错误

  • 我运行“node_modules/.bin/ngc -p ./src/assets/ts/tsconfig.aot.json”这会在根级别生成一个带有 ngfactory 文件的“dist”文件夹。
  • 然后我将 dist 文件夹的内容复制到 ./app/assets/js/ (这允许我在不捆绑或缩小的情况下测试生成的代码。
  • 接下来我修改我的 system.config.js 文件以使用 Main.aot.js 文件而不是 Main.js 文件。System.config.js 文件位于 .app/assets/config/system.config.js

此时我收到以下错误:

语法错误:意外的令牌 <

我可以将 system.config.js 文件切换回原始文件,并且一切正常。

4

1 回答 1

0

经过故障排除查看天。我发现问题与缺少库/功能模块有关。

IMO > 错误通常与丢失的文件有关。

于 2019-04-03T14:19:37.593 回答