Comment éviter l'installation de packages dans monorepo en utilisant Yarn

10

J'ai construit un monorepo en utilisant les espaces de travail Lerna et Yarn .

Tout fonctionne bien mais à chaque fois que j'installe une nouvelle dépendance sur un package (appelons-le A ) en utilisant:

yarn add <package_name>

Yarn l'ajoute et déclenche ensuite le installscript de tous les packages du monorepo, même les packages sur lesquels A ne s'appuie pas.

Il y en a quand même pour éviter ça? Il faut quelques instants pour les installer sans aucune raison.

Erazihel
la source
Vous avez donc utilisé les packages Lerna et Yarn? Pourquoi pas seulement Lerna? Avez-vous également essayé d'ajouter le package avec Lerna et de définir une portée? github.com/lerna/lerna/tree/master/commands/add
kbariotis
J'utilise Lerna pour publier et versionner mes packages et les espaces de travail Yarn pour gérer facilement les dépendances. J'ai essayé votre suggestion et cela n'a pas fonctionné. Merci d'avoir essayé :)
Erazihel

Réponses:

4

Essayez d'ajouter à l'espace de travail spécifique avec: -

yarn workspace <workspace_name> add <package_name>

Pour certains documents, vérifiez ici

Ezrqn Kemboi
la source
Je ne veux pas installer la dépendance à l'ensemble de l'espace de travail mais à un seul package
Erazihel
4

Vous pouvez essayer Yarn 2 avec nodeLinker: node-modulesin .yarnrc.yml. Yarn 2 garantit de déclencher la reconstruction uniquement sur les packages dont les dépendances ont été modifiées, c'est quelque chose qui n'était pas garanti par Yarn 1. Cependant, il y aura toujours un cas très rare où des packages apparemment sans rapport seront reconstruits s'ils sont hissés différemment après l'ajout d'un nouveau package , mais cela se produira très rarement.

Viktor Vlasenko
la source
J'ai essayé votre suggestion mais il semble que malheureusement le résultat soit toujours le même ...: /
Erazihel
4

En utilisant scope, ajoutez le package au module particulier.

lerna add some_package_1 --scope=some_module_x

Plus: https://github.com/lerna/lerna/tree/master/commands/add#readme

xdeepakv
la source
C'est ce que @kbariotis a suggéré en commentaire de ma question. J'ai essayé et le résultat est toujours le même.
Erazihel
pouvez-vous mettre à jour l'un des
packages.json
Je l'ai fait et encore une fois le résultat est toujours le même
Erazihel