我有一个简单的 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
我创建了一个示例存储库来复制该问题。
要使用 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 文件切换回原始文件,并且一切正常。