从node_modules加载Angular Lazy

时间:2017-07-02 12:39:24

标签: angular webpack lazy-loading webpack-2

我在多个Git Repos之间拆分我的项目,现在我遇到了延迟加载

的问题

如果我使用以下语法将sourceCode从子仓库复制到主仓库

{
    path: 'child-app',
    loadChildren: './shared/child/src/app/child-app.module#ChildAppModule'
},

我可以毫无问题地构建和服务我的项目 但是,如果我将Route更改为指向node_modules,如下所示

{
    path: 'child-app',
    loadChildren: '@mine/child/src/app/child-app.module#ChildAppModule'
},

OR

{
    path: 'child-app',
    loadChildren: '../../node_modules/@mine/child/src/app/child-app.module#ChildAppModule'
},

会引发此错误:

ERROR in ./src/$$_gendir lazy
Module not found: Error: Can't resolve '/Users/myuser/Projects/web-app
/src/node_modules/@mine/child/src/app/child-app.module.module.ngfact
ory.ts' in '/Users/myuser/Projects/web-app/src/$$_gendir'
 @ ./src/$$_gendir lazy
 @ ./~/@angular/core/@angular/core.es5.js
 @ ./src/main.browser.ts
 @ multi ./src/main.browser.ts webpack-hot-middleware/client?path=/__webpa
ck_hmr&timeout=2000&reload=true&noInfo=true

我正在使用webpack 2和ngtools / webpack来编译我的项目

1 个答案:

答案 0 :(得分:2)

来自带有JIT的node_modules的延迟加载模块工作正常,但是使用AOT的延迟加载无法正常工作

github.com/angular/angular-cli/issues/5986

我找到的最佳解决方案是从src / app / something创建一个符号链接到node_modules / something

ln -s source destination

并且工作正常:)