javascript - mac - ¿Por qué no quieres usar la opción `--save` para instalar npm?
npm install--save (2)
Leí acerca de usar la opción --save
aquí y dice que agregará el paquete instalado a su archivo package.json
. Pero, ¿por qué no es esto automático? ¿No quisieras siempre esto?
Tengo entendido que node_modules
es el directorio que realmente contiene el código de tu paquete y paquete. package.json
es la referencia / lista de todos los paquetes que has instalado, de modo que cuando lo levantas a un repositorio, solo empujas a este último hacia arriba y no el primero, para ahorrar espacio.
Luego, cuando otras personas clonen o desembolsen su repositorio, tendrán el package.json
para referenciar e instalar todos los paquetes necesarios para trabajar fuera de su proyecto.
Por lo tanto, ¿no querría siempre que sus paquetes estén en el package.json
para que todos puedan obtener lo que se necesita?
Con gestores de paquetes como Bower o npm , creo que --save
no es automático por las siguientes razones:
- Todas las dependencias no son dependencias de producción (vea
--save-dev
). - Algunas veces necesita probar un paquete sin alterar su
package.json
.package.json
. - Es posible que prefiera instalar localmente algunos paquetes que sus colegas instalaron globalmente en su computadora.
Los paquetes instalados sin --save
no se consideran como dependencias y se mantienen separados. Puede detectarlos fácilmente como paquetes extraños con npm ls
y eliminarlos instantáneamente con npm prune
.
Ahora, si piensa que los paquetes extraños son algo malo, puede usar, por --save
cada vez que instale un paquete nuevo. Por razones prácticas, tenga en cuenta que puede usar el acceso directo -S
lugar de - --save
. Además, si a menudo olvida usar la opción, podría definir un alias en su caparazón.
Finalmente, si usa Hilo , observe que el comando yarn add
agregará cada paquete como una dependencia. No --save
bandera más.
Para citar a uno de los mantenedores de npm:
En los últimos años, ha cambiado bastante aquí, lo que hace que partes de esta cuestión sean discutibles: [...] Es bastante fácil [...] ejecutar
npm config set save true
como usuarios finales. Dicho esto, todavía hay una serie de puntos difíciles al hacer--save
el valor por defecto:
- Si bien la carga cognitiva de tener que recordar
--save
o--save-dev
en el momento de la instalación es un problema irritante, te obliga a elegir en el momento de la instalación si un paquete es unadependency
odevDependency
.- Mover paquetes entre secciones en
package.json
sigue siendo un poco más difícil de lo que debería ser, lo que hace que limpiar después de cosas cuando te olvides de especificar que algo [ng] es un devDependency. [...] Como resultado, no creo que sea lo mejor para todos, optar por que todos guarden todo por defecto.