Angular 6,ngc,AOT,Angular Router,router.ngfactory和SystemJS

时间:2018-11-06 03:00:42

标签: angular systemjs angular-compiler-cli angular-compiler

我有一个简单的angular 6应用程序,我正在尝试使用AOT进行编译。 我没有使用Angular CLI 。我有一个自定义生成器,可用于构建我的项目开始并用于构建我的组件,服务等。

AOT之前的一切工作均正常。当我运行ngc来编译我的angular应用程序时,所有内容都会正确编译。但是,当我检查已编译的ngfactory javascript文件时,我从node_modules目录中看到了@ angular / router / router.ngfactory的引用。我似乎找不到此文件。

我的配置如下:

  • 节点v.10.10.0
  • Angular v.6.1.2
  • 打字稿v.3.1.1
  • SystemJS v 0.21.4
  • Gulp 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

这时出现以下错误:

  

SyntaxError:意外令牌<< / p>

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

1 个答案:

答案 0 :(得分:0)

故障排除后的工作日数。我发现问题与缺少的库/功能模块有关。

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