У меня есть рабочее пространство 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