延迟加载而不指定路径(即:通过import语句)

时间:2017-04-05 08:20:52

标签: angular angular2-routing

我知道我们可以通过指定模块的路径来使用延迟加载:

<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中查找。

因此,如果你想开发大型应用程序,由可能依赖于其他模块的独立模块构建,那么大灾难即将来临......

0 个答案:

没有答案