我们可以在同一端口下托管两个 angular 项目吗
Can we host two angular projects under same port
我在 angular2
开发了两个 angular 项目。一个是 public 门户,另一个是管理员。如果我将主门户托管为 http://myaddress.com then I need to host the admin under it; ie. the url should be http://myaddress.com/admin。这必须在 IIS
.
中进行测试
我的回答主要是理论上的。
- 创建一个
admin
项目的 npm 包(类似 ng-packagr 的东西会有所帮助)。有一种格式可以公开您想要在该项目之外访问的所有模块。您可以在 google 上找到关于此的详细信息。像 index.ts
等
- 将其作为
dependency
. 包含在主项目的 package.json
中
- 尝试在
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
更新
在我的项目中,我们有几个模块(准确地说是 4 个)与您的 admin
相似,我们意识到构建 4 个项目非常耗时(每个项目都有构建时间约为 7 分钟)。所以我们最终实现了 nrwl。这个工具帮助我们将所有 4 个项目都拉到我们的主项目下。这有助于减少时间,因为我们不再需要在实际部署代码之前构建 2 个项目(一个 Admin
和另一个 MainProject
)。如果您确实需要,请查看它。如果您需要更多的项目隔离,那么不要选择 Nrwl
.
您只需将项目托管在各自的目录(需要 IIS 配置)和 build/deploy 您的应用程序 base-href
选项:
ng build --prod --base-href=/admin // admin app
ng build --prod // public app
我在 angular2
开发了两个 angular 项目。一个是 public 门户,另一个是管理员。如果我将主门户托管为 http://myaddress.com then I need to host the admin under it; ie. the url should be http://myaddress.com/admin。这必须在 IIS
.
我的回答主要是理论上的。
- 创建一个
admin
项目的 npm 包(类似 ng-packagr 的东西会有所帮助)。有一种格式可以公开您想要在该项目之外访问的所有模块。您可以在 google 上找到关于此的详细信息。像index.ts
等 - 将其作为
dependency
. 包含在主项目的 - 尝试在
MainProject
中创建路由并在路由中使用延迟加载以获得更好的性能。类似于:
package.json
中
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
更新
在我的项目中,我们有几个模块(准确地说是 4 个)与您的 admin
相似,我们意识到构建 4 个项目非常耗时(每个项目都有构建时间约为 7 分钟)。所以我们最终实现了 nrwl。这个工具帮助我们将所有 4 个项目都拉到我们的主项目下。这有助于减少时间,因为我们不再需要在实际部署代码之前构建 2 个项目(一个 Admin
和另一个 MainProject
)。如果您确实需要,请查看它。如果您需要更多的项目隔离,那么不要选择 Nrwl
.
您只需将项目托管在各自的目录(需要 IIS 配置)和 build/deploy 您的应用程序 base-href
选项:
ng build --prod --base-href=/admin // admin app
ng build --prod // public app