Создать несколько приложений из одного Angular 9 проекта - PullRequest
0 голосов
/ 16 апреля 2020

Моя цель - создать один Angular проект с общими частями: функциональность, классы, внешний вид, сервисы и компоненты страницы (верхний колонтитул, нижний колонтитул, некоторые директивы). Затем внутри него есть 2 (или более приложения), которые будут использовать общие части и добавлять поверх него собственные компоненты (страницы) и маршруты.

Затем эти 2 приложения следует создавать в разных папках dist, чтобы их можно было развертывать в разных местах (URL). И я хочу иметь возможность запускать (обслуживать) их одновременно (возможно, на разных портах).

Думаю, мне следует начать с создания новых приложений внутри проекта:

ng generate application app1 --routing
ng generate application app1 --routing

а библиотека? (для общих компонентов). Это правильно?

Как мне настроить angular. json файл для обслуживания и сборки? И как мне настроить файлы app.module.ts?

Ответы [ 2 ]

1 голос
/ 16 апреля 2020

Непосредственно из Angular Guide Рабочая область и структура файла проекта - несколько проектов

Несколько проектов

Многопроектное рабочее пространство подходит для предприятие, которое использует единый репозиторий и глобальную конфигурацию для всех проектов Angular (модель "monorepo"). Многопроектное рабочее пространство также поддерживает разработку библиотек.

Настройка для многопроектного рабочего пространства

Если вы хотите иметь несколько проектов в рабочем пространстве, вы можете пропустить первоначальное создание приложения, когда вы создайте рабочее пространство и дайте рабочему пространству уникальное имя. Следующая команда создает рабочую область со всеми файлами конфигурации всей рабочей области, но без приложения уровня root.

ng new my-workspace --createApplication="false"

Затем можно создавать приложения и библиотеки с уникальными именами в рабочей области.

cd my-workspace
ng generate application my-first-app

Структура файла с несколькими проектами

Первое явно сгенерированное приложение помещается в папку projects/ вместе со всеми другими проектами в рабочей области. Вновь созданные библиотеки также добавляются в projects/. Когда вы создаете проекты таким образом, файловая структура рабочей области полностью соответствует структуре файла конфигурации рабочей области , angular.json.

my-workspace/
  ...             (workspace-wide config files)
  projects/       (generated applications and libraries)
    my-first-app/ --(an explicitly generated application)
      ...         --(application-specific config)
      e2e/        ----(corresponding e2e tests)
         src/     ----(e2e tests source)
         ...      ----(e2e-specific config)
      src/        --(source and support files for application)
    my-lib/       --(a generated library)
      ...         --(library-specific config)
      src/        --source and support files for library)

Файлы проектов библиотеки

Когда вы генерируете библиотеку с помощью CLI (с помощью команды, такой как ng generate library my-lib), сгенерированные файлы go попадают в папку projects / рабочей области. Для получения дополнительной информации о создании собственных библиотек см. Создание библиотек .

Библиотеки (в отличие от приложений и связанных с ними проектов e2e) имеют свои собственные файлы конфигурации package.json.

В папке projects/ папка my-lib содержит код вашей библиотеки.

В таблице она продолжается для описания файлов проекта библиотеки и их назначения. Я бы посоветовал прочитать далее документацию, приведенную выше, и соответствующие ссылки, поскольку она хорошо документирована и может помочь вам быстро приступить к работе.

Чтобы запустить несколько приложений Angular на разных портах, просто откройте другой терминал и запустите ng serve --port 1234 для каждого приложения. См. Angular (2) - Запуск двух проектов с CLI

1 голос
/ 16 апреля 2020

Звучит так, будто вы хотите использовать монорепозиционный подход. Я бы рекомендовал использовать https://nx.dev/angular.

...