Як уникнути встановлення пакунків у монорепо за допомогою Пряжі


10

Я створив монорепо з використанням робочих просторів Lerna та пряжі .

Все працює добре, але кожен раз, коли я встановлюю нову залежність від пакета (назвемо його А ), використовуючи:

yarn add <package_name>

Пряжа додає її, а потім запускає installсценарій усіх пакетів у монорепо, навіть тих пакетів, на які A не покладається.

Це все одно, щоб цього уникнути? Щоб встановити їх взагалі без причини, потрібно кілька хвилин.


Отже, ви використовували і пакети Lerna, і пряжу? Чому б не просто Лерна? Крім того, ви спробували додати пакет з Lerna та встановити область застосування? github.com/lerna/lerna/tree/master/commands/add
kbariotis

Я використовую Lerna для публікації та версії своїх пакунків та робочих просторів пряжі для легкого управління залежностями. Я спробував вашу пропозицію, і це не вийшло. Дякую за спробу :)
Erazihel

Відповіді:


4

Спробуйте додати до певної робочої області за допомогою: -

yarn workspace <workspace_name> add <package_name>

Для деяких документів перевірте тут


Я не хочу встановлювати залежність на всю робочу область, а лише на один пакет
Erazihel

4

Ви можете спробувати пряжу 2 з nodeLinker: node-modulesв .yarnrc.yml. Пряжа 2 гарантує відновлення лише на пакунках, які змінили свої залежності. Це не те, що не гарантувало Пряжа 1. Однак все ще буде дуже рідкісний випадок, коли начебто непов'язані пакети будуть перебудовані, якщо після додавання нового пакету вони будуть підняті по-іншому. , але це трапляється дуже рідко.


Я спробував вашу пропозицію, але виявляється, що, на жаль, результат все-таки той самий ...: /
Erazihel

4

Використовуючи область застосування, додайте пакет до конкретного модуля.

lerna add some_package_1 --scope=some_module_x

Детальніше: https://github.com/lerna/lerna/tree/master/commands/add#readme


Ось що запропонував @kbariotis у коментарі до мого запитання. Я спробував, і результат все одно той же.
Еразіхель

Ви можете оновити один з package.json
xdeepakv

Я зробив і ще раз результат все той же
Еразіхель
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.