我知道这里有不同形式的问题以及angular-cli github,但我找不到任何有用的答案(@ ngtools / webpack文档并不完整)。< / p>
说实话,我想用一个从angular-cli创建的新应用程序测试AoT并在angular-cli之外使用它,所以步骤是:
ng new test-app
ng eject
webpack.config.js
已修改为包含entryModule main.ts
被修改为引导已编译的工厂模块而不是标准模块我还删除了应用程序弹出时创建的.ngfactory文件,只是为了重新开始。
运行Webpack时会发生什么? (省略了[...]的绝对路径详细信息)
ERROR in [...]/test-app/src/main.ts (4,36): Cannot find module './app/app.module.ngfactory'.
ERROR in ./src/main.ts
Module not found: Error: Can't resolve './app/app.module.ngfactory' in '[...]/test-app/src'
但如果我以前手动运行ngc,一切正常,显然是因为生成了app.module.ngfactory
。
事实是,据说@ ngtools / webpack将生成的.ngfactory文件保存在内存中,然后将所有内容捆绑在webpack输出中,这是有道理的。但我不知道为什么它无法在内存中找到这个&#34;&#34; .ngfactory文件,如果路径不正确或其他任何原因,我找不到任何调试方法。
是的,我知道我可以先使用ngc构建然后使用Webpack,但这样会破坏整个AoT插件的内容。
这是main.ts:https://github.com/JimGV/angularaot/blob/master/src/main.ts
这是webpack配置:https://github.com/JimGV/angularaot/blob/master/webpack.config.js
这只是插件配置部分:
new AotPlugin({
"hostReplacementPaths": {
"environments/environment.ts": "environments/environment.ts"
},
"entryModule": __dirname + "/src/app/app.module#AppModule",
"exclude": [],
"tsConfigPath": __dirname + "/src/tsconfig.app.json",
"skipCodeGeneration": true
})
我在Mac El Capitan上运行节点8.1.1和Angular 4.2.4以及@ ngtools / webpack 1.4.1
提前致谢