我知道我们可以通过指定模块的路径来使用延迟加载:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="col-md-4 image-hover img-opacity">
<img class="img-1" src="http://loremflickr.com/320/240" />
<p>Lorem ipsum dummy text</p>
</div>
是否有可能将lazyloaded模块定义为?:
const routes: Routes = [
{path: '', component: AdminComponent, children: [
{path: 'app', loadChildren: './app/app.module#AppModule' },
{path: 'anotherPath', component: SomeComponent }
]},
];
我想将我的子模块保存在不同的git repos中,并将它们安装为主项目的依赖项。这要求我指定模块的路径如下:
import {AppModule} from 'somePath';
const routes: Routes = [
{path: '', component: AdminComponent, children: [
{path: 'app', loadChildren: AppModule },
{path: 'anotherPath', component: SomeComponent }
]},
];
对我来说这看起来有点奇怪。
现在想象一下情况,{path: 'moduleA', loadChildren: '../node_modules/my-module-A/some_other_path/app/app.module#AppModule' },
有另一种依赖,让我们说moduleA
。所以在这里,开发人员再次将模块的路径指定为moduleAB
当我们在主应用程序中运行moduleA时,我们得到以下目录结构:
../node_modules/etc
现在问题开始了。 ModuleA已正确加载,但对于ModuleAB,角度试图在目录- application_code/
|
- node_modules/
|
- moduleA/
| |
| - src/module_code_goes_here
|
- moduleAB/
|
- src/module_code_goes_here
而不是node_modules/moduleA/node_modules/moduleAB
中查找。
因此,如果你想开发大型应用程序,由可能依赖于其他模块的独立模块构建,那么大灾难即将来临......