我已经构建了一个非常大的角度2 cli应用程序,它目前工作正常。但是,当我们向生产环境发布时,我们正面临着问题。 5个团队正在研究单独的模块,有些情况下,一个或两个模块必须上线。 但是当我们构建项目时,所有模块都正在被编译,并且所有更改都将生效。
我尝试将每个模块构建为单独的angular2库并在git存储库上托管稳定版本。我们有一个共同项目,所有模块已添加到package.json
dependencies
,团队正在使用npm install
获取其他模块的更新。
在常见项目路由中如下
export const routes: Routes = [
{ path: '', component: UsTileMenuComponent },
{ path: 'features/:id', component: UsTileFeaturesComponent },
{ path: 'users', loadChildren: 'app/modules/admin/admin.module#AdminModule' },
{ path: 'sample', loadChildren: 'app/modules/sample/sample.module#SampleModule' },
{ path: 'shop', loadChildren: '@exce/sample#SampleModule' },
{ path: 'members', loadChildren: '@exce/membership#MembershipModule' },
{ path: '**', component: PageNotFoundComponent }
];
的package.json
"dependencies": {
"@angular/animations": "^4.2.2",
"@angular/common": "^4.2.2",
"@angular/compiler": "^4.2.2",
"@angular/compiler-cli": "^4.2.2",
"@angular/core": "^4.2.2",
"@angular/forms": "^4.2.2",
"@angular/http": "^4.2.2",
"@angular/platform-browser": "^4.2.2",
"@angular/platform-browser-dynamic": "^4.2.2",
"@angular/platform-server": "^4.2.2",
"@angular/router": "^4.2.2",
"@ng-bootstrap/ng-bootstrap": "^1.0.0-alpha.26",
"classlist.js": "^1.1.20150312",
"core-js": "^2.4.1",
"intl": "^1.2.5",
"ng2-translate": "^5.0.0",
"rxjs": "^5.1.0",
"web-animations-js": "^2.2.5",
"zone.js": "^0.8.4",
"@exce/us-common":"file:///D:/WORK_DIR/HTML/modules/us-common/dist",
"@exce/admin":"file:///D:/WORK_DIR/HTML/modules/admin/dist",
"@exce/membership":"D:/WORK_DIR/HTML/modules/membership/dist",
"@exce/sample":"D:/WORK_DIR/HTML/modules/sample/dist"
},
在这里,我通过使用git URL的文件Url来获取依赖关系。在这种方法中,库中的组件,服务和管道可以使用,但库内的路由不起作用。它不会加载为{ path: 'members', loadChildren: '@exce/membership#MembershipModule' }
有人可以建议一个解决方案吗?