Cómo evitar la instalación de paquetes en monorepo usando Yarn

10

Construí un monorepo usando espacios de trabajo de Lerna y Yarn .

Todo funciona bien, pero cada vez que instalo una nueva dependencia en un paquete (llamémosle A ) usando:

yarn add <package_name>

Yarn lo agrega y luego activa el installscript de todos los paquetes en el monorepo, incluso los paquetes en los que A no confía.

¿Hay alguna forma de evitar esto? Lleva unos minutos instalarlos sin ningún motivo.

Erazihel
fuente
¿Usaste los paquetes Lerna y Yarn? ¿Por qué no solo Lerna? Además, ¿ha intentado agregar el paquete con Lerna y establecer un alcance? github.com/lerna/lerna/tree/master/commands/add
kbariotis
Utilizo Lerna para publicar y versionar mis paquetes y espacios de trabajo de Yarn para administrar fácilmente las dependencias. Intenté tu sugerencia y no funcionó. Gracias por intentar :)
Erazihel

Respuestas:

4

Intente agregar al espacio de trabajo específico con: -

yarn workspace <workspace_name> add <package_name>

Para algunos documentos verifique aquí

Ezrqn Kemboi
fuente
No quiero instalar la dependencia en todo el espacio de trabajo, sino solo en un paquete
Erazihel
4

Puedes probar Yarn 2 con nodeLinker: node-modulesin .yarnrc.yml. Yarn 2 garantiza activar la reconstrucción solo en paquetes que tienen sus dependencias cambiadas, esto es algo que no fue garantizado por Yarn 1. Sin embargo, todavía habrá un caso muy raro cuando los paquetes aparentemente no relacionados se reconstruyan si se izan de manera diferente después de agregar un nuevo paquete , pero esto ocurrirá muy raramente.

Viktor Vlasenko
fuente
Intenté su sugerencia pero parece que desafortunadamente el resultado sigue siendo el mismo ...: /
Erazihel
4

Usando el alcance, agregue el paquete al módulo en particular.

lerna add some_package_1 --scope=some_module_x

Más: https://github.com/lerna/lerna/tree/master/commands/add#readme

xdeepakv
fuente
Eso es lo que @kbariotis sugirió en el comentario a mi pregunta. Lo intenté y el resultado sigue siendo el mismo.
Erazihel
¿Puedes actualizar uno de los package.json
xdeepakv
Lo hice y una vez más el resultado sigue siendo el mismo
Erazihel