Angular Рабочая область - невозможно построить проект, не создавая другие проекты в той же рабочей области - PullRequest
0 голосов
/ 13 апреля 2020

У меня есть рабочее пространство Angular CLI, созданное с помощью createApplcation = false.

У меня есть 2 библиотеки:

@scope/lib1
@scope/lib2

lib2 зависит от lib1.

Я должен собрать lib1 так, чтобы dist / lib1 был создан и angular CLI знал о пакете. С точки зрения CI / CD это означает, что при каждой сборке lib2 мне нужно собирать lib1.

Это правильное предположение? Если да, есть ли способ собрать lib2 без необходимости сборки lib1?

Пример, который я привел выше, является небольшим примером, но мое текущее рабочее пространство содержит множество этих зависимостей между библиотеками в одном рабочем пространстве (~ 12 пакетов). Кажется довольно интенсивным, чтобы продолжать создавать восходящие библиотеки для построения нижестоящих библиотек.

Поскольку это большой проект, я не хочу каждый раз создавать все рабочее пространство (например, у меня есть небольшое изменение s css в одном из приложений, и теперь мой инструмент CI должен собрать все вышестоящие зависимости для этого единственного изменения).

Я пробовал несколько вещей: 1. добавьте lib1 как peerDependency в пакет. json из lib2 - похоже, ничего не делает, когда собран пакет root. json - насколько я понимаю, пакет библиотеки. json предназначен только для метаданных распространения, а не для метаданных сборки 2. Я пытался импортировать модуль из lib1 в lib2 как import <module> from 'projects/lib1/src/public_api, но продолжаю получать следующую ошибку: Error: error TS6059: File 'example.ts' is not under 'rootDir' '/workspace/projects/lib2/src'. 'rootDir' is expected to contain all source files.

К вашему сведению: использование @ angular / cli ~ 8.3 с @ angular ~ 8.2

...