Как создать несколько приложений в одном проекте angular 6 с несколькими папками dist?

Как создать несколько приложений в одном проекте Angular 6 с несколькими папками dist? так что вы можете развертывать приложения независимо.

Я создаю проект и внутри проекта создаю два приложения с помощью команды: приложение ng g application 1 приложение ng g приложение 2

если я построю их независимо, я получу две разные папки распространения ng build app1 --prod ng build app2 --prod

Но я хочу иметь возможность перенаправить app1 в app2 через ссылку, если я создам весь проект, как в: ng build --prod

оба приложения сжаты в одну папку dist, и я хочу иметь две папки app1 и app2 в качестве независимых папок dist, чтобы я мог развертывать их независимо, поэтому проблема, с которой я сталкиваюсь, заключается в возможности маршрутизации в app2 из app1.

AFAIK Даже если у вас есть несколько приложений в одной рабочей области, одно по-прежнему используется по умолчанию (см. Angular.json: "defaultProject": "app-one"). И если вы запустите ng build (или ng serve), будет создано только это приложение по умолчанию.

sasynkamil 19.02.2021 17:08
2
1
1 175
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

В проекте NGIR я создаю два проекта (один для клиентской стороны, а второй для серверной)

проверьте angular.json, там вы можете изменить outputPath в любой каталог, который вам нравится

вы можете сделать то же самое для своего проекта

Надеюсь, это поможет.

Я считаю, что теперь это возможно с помощью встроенных инструментов; вы можете настроить несколько проектов в узле "projects" файла angular.json.

Вот фрагмент файла:

"newProjectRoot": "projects",
  "projects": {
    "my-angular-project": {
      "root": "",
      "projectType": "application",
      "architect": {
        "build": {
          "builder": "@angular-devkit/build-angular:browser",
          "options": {
            "outputPath": "dist/browser",
            "index": "src/index.html",
            "main": "src/main.ts",
            "tsConfig": "src/tsconfig.app.json",

Таким образом, вместо одного каталога src у вас может быть несколько, каждый со своим собственным проектом Angular внутри.

Ответ принят как подходящий

Не уверен, как это было в Angular 6, но в Angular 8 и новее у вас есть два основных варианта:

  1. Создайте рабочее пространство Angular и несколько приложений под ним. Также у вас могут быть библиотеки в этой рабочей области, поэтому, кроме package.json, вы также можете делиться общими материалами между (компонентами, службами, активами, ...) этими приложениями. Например.:

    ng new PlaygroundWorkspace --create-application = false

    ng сгенерировать приложение app-one --routing = true ng сгенерировать приложение app-two --routing = true

    ng сгенерировать библиотеку lib-mylib

ЗА: Приложения независимы - вы получаете две сборки (dist / app-one и dist / app-two).

МИНУСЫ: у вас не может быть "общей" маршрутизации. Допустим, вы хотели бы иметь одно общее меню (в идеале поместить его в lib), чтобы одно и то же меню (с использованием routerLink) отображалось в обоих приложениях:

APP ONE - page 1 ... url:port/app-one/page1
APP ONE - page 2 ... url:port/app-one/page2
APP TWO - page 1 ... url:port/app-two/page1
APP TWO - page 2 ... url:port/app-two/page2

Но поскольку Angular - это SPA (запрос не отправляется на сервер благодаря Routing и routerLink), маршрутизация работает только в «реальном» приложении, которое вы открыли. Так, например, если вы находитесь в / app-one /, навигация (между page1 и page2) работает только там, щелчок по ссылкам (routerLink) для app-two не работает. Если вы вручную вводите URL-адрес для приложения-два, тогда вы будете в приложении-два, а ссылки на приложение-одно (routerLink) не будут работать.

  1. Имейте основное приложение Angular и подпрограммы (компоненты) с отложенной загрузкой, как указано здесь: как перемещаться между несколькими приложениями в одном проекте в Angular 6 от GreyBeardedGeek. Или https://medium.com/disney-streaming/combining-multiple-angular-applications-into-a-single-one-e87d530d6527

Другие вопросы по теме