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 truecomo usuarios finales. Dicho esto, todavía hay una serie de puntos difíciles al hacer--saveel valor por defecto:
- Si bien la carga cognitiva de tener que recordar
--saveo--save-deven 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 unadependencyodevDependency.- Mover paquetes entre secciones en
package.jsonsigue 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.