当从不同的包中构建AOT +延迟加载时出现Angular 2错误

时间:2017-04-16 20:19:23

标签: angular npm lazy-loading angular-cli

我有一个角度2的应用程序,这是我的应用程序的主要条目。

在这个应用程序中,我安装了另一个角度npm包,其中包含我模块的所有代码。

这个npm包使用AOT编译为角度库,并将其发布到私有npm。

以下是包含错误的示例应用。 https://github.com/chorew/AngularSample

要查看问题:

  1. 克隆回购
  2. npm install
  3. npm run dev:library
  4. 在主应用程序模块中,我有这个延迟加载的路径:

    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'
    

0 个答案:

没有答案