我在angular2
中开发了两个有角度的项目。一种是公共门户,另一种是管理员。如果我将主门户网站托管为http://myaddress.com,则需要在其下托管管理员。即。网址应为http://myaddress.com/admin。这必须在IIS
中进行测试。
答案 0 :(得分:2)
您只需要将两个项目托管在各自的目录中(需要IIS配置),并使用base-href
选项构建/部署应用程序:
ng build --prod --base-href=/admin // admin app
ng build -- prod // public app
答案 1 :(得分:1)
我的回答基本上是理论上的。
admin
项目的npm捆绑包(例如ng-packagr会有所帮助)。有一种格式可以公开您要在此项目外部访问的所有模块。您可以在Google上找到有关此信息的详细信息。像index.ts
等package.json
包含在主项目的dependency
中。MainProject
内创建路由,并在路由中使用延迟加载以提高性能。像这样:export const AppRoutes: Routes = [
{
path: '',
component: 'IAmINMainProjec',
canActivate: [TrafficGuard],
pathMatch: 'full'
// and what not..
},
{
path: 'admin',
loadChildren:
'./modules/widget-wrappers/#AdminWrapperModule',
canActivate: [AuthGuard]
},
AdminWrapperModule
@NgModule({
imports: [
CommonModule,
AdminModule,
]
})
export class AdminWrapperModule{}
上面的代码仅供参考:D
在我的项目中,我们有几个与admin
类似的模块(准确地说是4个),并且我们意识到要构建4个项目(每个项目都有构建时间)非常耗时大约7分钟)。因此,我们最终实现了nrwl。该工具帮助我们将所有4个项目拉到主项目下。这有助于减少时间,因为在实际部署代码之前,我们不再需要构建2个项目(一个Admin
和另一个MainProject
)。如果确实需要,请看看它。如果您需要更多的项目隔离,那么不要使用Nrwl
。