vdegenne
si uso yarn add <package-name>
Yarn instalará tanto las dependencias como las devDependencies de <package-name>
. ¿Está destinado?
Revisé la documentación pero no pude encontrar una manera de evitar la instalación de las dependencias de desarrollo.
devDependencies
son las dependencias que se usaron para compilar las fuentes de un paquete, por lo tanto, si estoy en un entorno de producción, no las necesito.
kimy82
Usar --production=true
(o simplemente --production
o --prod
para abreviar). De hecho, es un comportamiento normal; Yarn asume que se encuentra en un contexto de ‘desarrollo’ a menos que su variable de entorno NODE_ENV esté configurada en ‘producción’.
Echa un vistazo a Yarn’s documentación.
-
Esta funcionalidad parece estar rota debido a github.com/yarnpkg/yarn/issues/6323
– brodybits
18 de junio de 2019 a las 1:54
-
No “roto” sino “mal diseñado”
--prod
todavía descargas e “instalaciones”dev
paquetes SI hilo necesita resolver “árbol completo”. Solo usayarn install --production --frozen-lockfile
y a juegoyarn.lock
y--production
funcionará como se esperaba.– ddotsenko
5 de julio de 2020 a las 20:54
-
--production
flag ha quedado obsoleto para yarn 2.0. ¿Cómo evitar que yarn 2.0 instale dependencias de desarrollo?– akshat
2 de abril de 2021 a las 5:45
-
Llega tarde a la fiesta, pero la nueva forma de hacerlo en Yarn 2+ es usando
yarn workspaces focus --production --all
: yarnpkg.com/cli/workspaces/enfoque– hoy
8 dic 2021 a las 14:41
-
Desafortunadamente, no tengo una respuesta, pero me gustaría señalar que nada de lo anterior es correcto a partir de enero de 2022. El hilo se siempre instale devDependencies independientemente de las opciones y NODE_ENV envvar.
– Resistente
26 de enero de 2022 a las 1:07
Como se dice en el comentario de @ddotsenko
No “roto” sino “mal diseñado” –prod aún descarga e “instala” paquetes de desarrollo SI el hilo necesita resolver el “árbol completo”. Justo usar
yarn install --production --frozen-lockfile
y hacer coincidir yarn.lock y –production funcionará como se esperaba.
Eso funcionó para eliminar un node_modules de 210 MB a 70 MB, similar a npm
y pnpm
.
NODE_ENV=production
también previene la instalación de devDependencies
-
usar
NODE_ENV=production
como entornos antes de ejecutaryarn
oyarn install
– zyfyy
7 de diciembre de 2021 a las 4:26
Las respuestas existentes parecen perder el punto de la pregunta (incluida la respuesta aceptada).
si invoco
yarn add <my-package>
Yarn instalará tanto las dependencias como las devDependencies de<my-package>
. ¿Es un comportamiento normal?
No, esto suena como un error. No veo este comportamiento con la última versión de yarn v1.
Si yo yarn add foo
a mi proyecto, debería haber instalado:
- mis dependencias directas
foo
- cualquier dependencia de
foo
y sus dependencias recursivamente - no devDependencias de
foo
- devDependencies de mi proyecto (a menos que use varios indicadores de producción/vars mencionados en otras respuestas)
- (Hasta donde yo sé, yarn no instala automáticamente las dependencias de pares como en las versiones recientes de npm)
si estas corriendo yarn add
se puede suponer que está en un contexto “dev”.
Con Yarn 2+, parece que Yarn se centra en las instalaciones PnP, lo que significa una estructura de datos direccionable por contenido que reemplaza la clásica node_modules
y se supone que es parte del paquete, por lo tanto, las fuentes del paquete incluirán automáticamente devDependencies
.
Sin embargo, yarn workspaces focus <name> --production
permite instalar un paquete de espacio de trabajo sin `devDependencias. Ver https://yarnpkg.com/cli/workspaces/focus para más información.
-
Comparta su paquete.json y comparta más información sobre su entorno, como el administrador de paquetes que usó yarn|npm|pnpm y cuáles son las versiones y la información del sistema.
– Nawaf Khalifah
15/09/2022 a las 15:06
Webvoid
Yarn tiene una opción de producción, que hará que instale solo las dependencias de producción. Esto es mostrado aquí
-
Comparta su paquete.json y comparta más información sobre su entorno, como el administrador de paquetes que usó yarn|npm|pnpm y cuáles son las versiones y la información del sistema.
– Nawaf Khalifah
15/09/2022 a las 15:06