Изоляция рабочей зоны пряжи - PullRequest
0 голосов
/ 20 февраля 2019

У меня проблемы с пряжей при пустых настройках (когда у меня нет версий моих библиотек на npm).

У меня есть многомодульный проект, как показано ниже:

root                        # Yarn workspace
 * packages
 |  * lib1-ws               # Angular workspace
 |  |  * projects
 |  |  |  * lib1
 |  |  |     * package.json
 |  |  * package.json
 |  |
 |  * lib2-ws               # Angular workspace
 |  |  * projects
 |  |  |  * lib2
 |  |  |     * package.json # peer depends on lib1
 |  |  * package.json       # depends on lib1
 |  |
 |  * lib3-ws               # Angular workspace
 |     * projects
 |     |  * lib3
 |     |     * package.json # peer depends on lib1
 |     * package.json       # depends on lib1
 |
 * package.json

Проекты lib2-ws и lib3-ws требуют сборки lib1.

Я пытался выпустить (установить, собрать и опубликовать) lib1, чтобы я мог выпустить lib2 и lib3 .

Но когда я запускаю yarn workspace lib1-ws install или yarn install (внутри папки lib1-ws ), пряжа пытается установить lib2-ws и lib3-ws , прерывая операцию установки с этой ошибкой:

error Не удалось найти пакет "lib1@^0.0.1"требуется" lib2-ws@0.0.1 "в реестре" npm ".

Не уверен, что мне не хватает, есть какая-то команда, которую я могу запустить, чтобы проигнорировать это workspace-aggregatorвещь?

Спасибо.

1 Ответ

0 голосов
/ 20 февраля 2019

Похоже, что я недостаточно искал, после публикации этого вопроса я прочитал еще один вопрос , который дает мне идею.

Мой объект рабочих пространств стал таким:

"workspaces": {
  "packages": [
    "packages/*",
    "packages/**/projects/*"
  ]
}

И это работает, теперь я могу установить даже без сборки или публикации.

[ОБНОВЛЕНИЕ]

Поскольку некоторые особенности угловой сборки после установки всех зависимостей, пустая установка должнавыполнить какой-то заказ (поскольку рабочая область пряжи создает символические ссылки для библиотек):

  1. build lib1 then publish lib1
  2. yarn workspace lib2-ws add lib1@latest
  3. yarn workspace lib3-ws add lib1@latest
  4. build lib2 then publish lib2
  5. build lib3 then publish lib3

После этих шагов мои библиотеки готовы в моем локальном хранилище verdaccio.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...