我有一个角度2的应用程序,这是我的应用程序的主要条目。
在这个应用程序中,我安装了另一个角度npm包,其中包含我模块的所有代码。
这个npm包使用AOT编译为角度库,并将其发布到私有npm。
以下是包含错误的示例应用。 https://github.com/chorew/AngularSample
要查看问题:
在主应用程序模块中,我有这个延迟加载的路径:
const routes: Routes = [
{ path: 'underwriting',
loadChildren: '@h2o/underwriting/src/underwriting/underwriting.module#UnderwritingModule'
}
];
当我在主应用中运行ng build --aot
时会出现错误。
ERROR in ./src/$$_gendir async
Module not found: Error: Can't resolve 'C:\Users\Juan.Pablo\projects\POC\h2o.web\packages\h2o.app\src\node_modules\@h2o\underwriting\src\underwriting\underwrit
ing.module.d.ngfactory.ts' in 'C:\Users\Juan.Pablo\projects\POC\h2o.web\packages\h2o.app\src\$$_gendir'
@ ./src/$$_gendir async
@ ./~/@angular/core/@angular/core.es5.js
@ ./src/main.ts
@ multi ./src/main.ts
它认为包名@h2o/underwriting
未正确转换为路径,因为它是模块路径的基础,它会产生错误。
ng build正试图找到(检查额外的src,就好像模块是在主应用程序src中)
'C:\Users\Juan.Pablo\projects\POC\h2o.web\packages\h2o.app\src\node_modules\@h2o\underwriting\src\underwriting\underwrit
ing.module.d.ngfactory.ts'
什么时候应该
'C:\Users\Juan.Pablo\projects\POC\h2o.web\packages\h2o.app\node_modules\@h2o\underwriting\src\underwriting\underwrit
ing.module.d.ngfactory.ts'