Можем ли мы разместить два угловых проекта под одним портом - PullRequest
3 голосов
/ 19 июня 2019

У меня есть два угловых проекта, разработанных в angular2.Одним из них является публичный портал, а другим - администратор.Если я размещаю основной портал как http://myaddress.com, тогда мне нужно разместить администратора под ним;то есть.URL должен быть http://myaddress.com/admin. Это должно быть проверено в IIS.

Ответы [ 2 ]

2 голосов
/ 19 июня 2019

Вам нужно разместить оба проекта в соответствующем каталоге (необходима конфигурация IIS) и собрать / развернуть свои приложения с опцией base-href:

ng build --prod --base-href=/admin // admin app
ng build -- prod // public app
1 голос
/ 19 июня 2019

Мой ответ будет в основном теоретическим для этого.

  1. Создайте npm-пакет проекта admin (что-то вроде ng-packagr поможет).Существует формат для отображения всех модулей, к которым вы хотите получить доступ за пределами этого проекта.Вы можете найти подробности в Google об этом.что-то вроде index.ts etc
  2. Включите его в package.json основного проекта как dependency.
  3. Попробуйте создать маршрутизацию внутри 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 в вашем случае, и мы поняли, что сборка четырех проектов (скаждый проект имеет время сборки около 7 минут).В итоге мы реализовали nrwl .Этот инструмент помог нам подтянуть все 4 проекта в рамках нашего основного проекта.Это помогло сократить время, так как нам больше не нужно было создавать 2 проекта (один Admin и другой MainProject) до фактического развертывания кода.Посмотрите на это, если вам это действительно нужно.Если вам нужно больше разделения проектов, тогда не выбирайте Nrwl.

...