¿Cuál es la opción --save para la instalación de npm?

2040

Vi un tutorial donde estaba el comando:

npm install --save

¿Qué significa la --saveopción?

No puedo encontrar la respuesta en Google.

Dmitri
fuente
32
@ Tom- --save: Package will appear in your dependencies.
WiredPrairie
77
Puede usar el acceso directo -S y -D allí -S es --save y -D es '--save-dev. --save (o simple -S): el paquete aparecerá en sus dependencias. --save-dev (o simple -D): el paquete aparecerá en tus devDependencies.
Gil Epshtain
55
@WiredPrairie gracias estaba intentando npm install (--help | -h | -help ..)y nada.
juliangonzalez
2
Gracias @Dmitri, tuve el mismo problema. vamos NPM agregue eso a su página MAN para su herramienta
Erdinc Ay
67
No entiendo la razón detrás de la decisión de eliminar incluso una sola mención de esta opción de los documentos y la página de ayuda sin despreciarla, al menos, con una advertencia en la herramienta misma. Mientras tanto, los novatos están expuestos a él a través de millones de tutoriales. Luego intentan averiguar qué hace y tienen que perder 20 minutos leyendo los documentos, para finalmente terminar leyendo el historial de npm en stackoverflow. Curiosamente, evitar este tipo de pérdida masiva de tiempo (si la popularidad de la pregunta es una indicación) es uno de los propósitos de la documentación.
Michael Ekoka

Respuestas:

2479

Actualización npm 5:

A partir de npm 5.0.0 , los módulos instalados se agregan como una dependencia por defecto, por lo que la --saveopción ya no es necesaria. Las otras opciones de guardado aún existen y se enumeran en la documentación de npm install.

Respuesta original:

Antes de la versión 5, NPM simplemente instaló un paquete node_modulespor defecto. Cuando intentaba instalar dependencias para su aplicación / módulo, primero debía instalarlas y luego agregarlas (junto con el número de versión apropiado) a la dependenciessección de su package.json.

La --saveopción instruyó a NPM a incluir el paquete dentro de la dependenciessección de su package.jsonautomáticamente, lo que le ahorra un paso adicional.

Además, existen opciones complementarias --save-devy --save-optionalque guardan el paquete en devDependenciesy optionalDependencies, respectivamente. Esto es útil al instalar paquetes solo de desarrollo, como grunto su biblioteca de prueba.

voithos
fuente
141
En serio, ¿está documentado esto en alguna parte? No pude encontrarlo en Google o en la npmayuda.
Christian Ternus
112
Sería bueno que la documentación para esto apareciera cuando npm install --helpse usara.
Mark Stosberg
11
@jimsmith: a partir de npm 5.0, es el valor predeterminado.
voithos
3
¿"Npm update" en NPM 5 modifica package.json de forma predeterminada?
Igor Okorokov
66
@voithos Para mí, NPM 5 actualiza las versiones del paquete en package.json. Para evitarlo, necesito ejecutar 'npm update --no-save'
Igor Okorokov
219

Para agregar paquete en dependencias:

npm install my_dep --save

o

npm install my_dep -S

o

npm i my_dep -S

Para agregar paquete en devDependencies

npm install my_test_framework --save-dev

o

npm install my_test_framework -D

o

npm i my_test_framework -D

package.json ingrese la descripción de la imagen aquí

Joe L.
fuente
30
tenga cuidado al usar versiones de acceso directo -S -Dcomo deben ser mayúsculas. Siempre cometo este error y npm no se queja ni lo agrega al paquete
Json
77
No se queja porque -s(en minúsculas) es para la --silentopción, y -des para información de nivel de registro que son atajos válidos.
tanvi
131

No hará nada si no tiene un package.jsonarchivo. Comience corriendo npm initpara crear uno. A continuación, llama a npm install --saveo npm install --save-devo npm install --save-optionalactualizará el package.jsonlistar sus dependencias.

Nick Retallack
fuente
37
Me acabo de enterar de que funciona de forma retroactiva (parece). Puede ejecutar su npm install --save-devprimero, luego npm init y se completará su package.json.
Jacob Wang
20

de acuerdo con NPM Doc

ingrese la descripción de la imagen aquí

Entonces parece que al ejecutarse npm install package_name, la dependencia del paquete debería agregarse automáticamente a package.json, ¿verdad?

ROROROOROROR
fuente
1
Supongo que no se debe guardar cuando se quiere una funcionalidad como npm <5
Abhiroj Panwar
Ya veo, npm config ls -lmuestra que de forma predeterminada, las opciones de guardar-xxx son todas falsas, solo guardar es verdadero.
ROROROOROROR
Parece que npm no generará ningún error si coloca una opción inexistente, como --save-xxxxxx. Simplemente lo ignora y el comportamiento predeterminado --save-prod tendrá efecto. Quizás --save proviene de alguna versión antigua de npm.
Leon
13

También puede usar -S, -Do -Pque son equivalentes a guardar el paquete en una dependencia de aplicación, una dependencia de desarrollo o una dependencia de producción. Ver más atajos de NPM a continuación:

-v: --version
-h, -?, --help, -H: --usage
-s, --silent: --loglevel silent
-q, --quiet: --loglevel warn
-d: --loglevel info
-dd, --verbose: --loglevel verbose
-ddd: --loglevel silly
-g: --global
-C: --prefix
-l: --long
-m: --message
-p, --porcelain: --parseable
-reg: --registry
-f: --force
-desc: --description
-S: --save
-P: --save-prod
-D: --save-dev
-O: --save-optional
-B: --save-bundle
-E: --save-exact
-y: --yes
-n: --yes false
ll and la commands: ls --long

Esta lista de accesos directos se puede obtener ejecutando el siguiente comando:

$ npm help 7 config
DevWL
fuente
7

A partir de npm 5, es más favorable usar --save-prod(o -P) que --savehacer lo mismo, como se indica en npm install . Hasta ahora, --saveaún funciona si se proporciona.

campo temático
fuente
Esto tiene que ir a la cima para salvarnos a todos de las variaciones, contradicciones y secuestros de hilos. SO necesita fomentar respuestas breves con URL válidas para que podamos evitar CRUD y continuar con nuestro trabajo. (Quora tiene un claro '¿Es relevante esta respuesta', etc.? Incluso sugerí que SO hiciera esto) \ n Apesta que el documento oficial de nodos no mencione las opciones más antiguas (obsoletas) y la mayoría de las referencias de nodos parecen ser pre -5.0, enviando nuestras cabezas a dar una vuelta.
killjoy
6

A partir de npm 5, npm ahora se guardará de forma predeterminada. En caso de que desee que npm funcione de manera similar (sin autoguardado) a como funcionaba en versiones anteriores, puede actualizar la opción de configuración para habilitar el autoguardado como se muestra a continuación.

npm config set save false

Para obtener la configuración actual, puede ejecutar el siguiente comando:

npm config get save

Fuente: https://blog.pusher.com/what-you-need-know-npm-5/

Rajesh Kumar
fuente
6

npm install package_x --save

El paquete dado (package_x) se guardará en package.json dentro de las dependencias. si agregas

npm install <<package_x>> --save-dev

entonces se guardará dentro de devDependencies .

Nizam Deen
fuente
12
¿Qué aporta su respuesta que otras respuestas aún no han cubierto?
Pedro A
@Pedro A - Sospecho que el tipo reescribe lo que acaba de leer; luego hace que sus amigos le den votos positivos.
IAM_AL_X
3

La forma más fácil (y más asombrosa) de agregar dependencias a su package.json es hacerlo desde la línea de comandos, marcando el comando de instalación npm con --save o --save-dev, dependiendo de cómo desee usa esa dependencia.

Rubin Bhandari
fuente
3

npm install --saveo npm install --save-devpor qué elegimos 1 opciones entre estas dos al instalar el paquete en nuestro proyecto.

las cosas anteriores aclaran las cosas que npm install --saveagregarán una entrada en el dependencycampo en el pacakage.jsonarchivo y otra en dev-dependency.

Entonces surge la pregunta de por qué necesitamos ingresar nuestro módulo de instalación en el archivo pacakge.json porque cada vez que ingresamos el código gito le damos nuestro código a alguien siempre lo damos o lo verificamos sin node-modulesél porque es muy grande y también está disponible en lugar común para evitar esto hacemos eso.

entonces, cómo otra persona obtendrá todos los módulos que son específicos o necesarios para ese proyecto, por lo que las respuestas son from the package.jsonarchivos que tienen la entrada de todos los paquetes necesarios para ejecutar o desarrollar ese proyecto.

así que después de obtener el we simply need to run the npm installcomando de código leerá el archivo package.json e instalará los paquetes necesarios necesarios.

Sunny Goel
fuente
2

npm i (Nombre del paquete) --save

Simplemente, usando el comando anterior no necesitaremos escribir el nombre del paquete en su archivo package.json, agregará automáticamente su nombre y dependencia con la versión que necesitará en el momento en que vaya a la producción o la configuración en otro momento.

npm help install

El comando anterior ayudará a encontrar más opciones y corregir la definición mostrada en la imagen ingrese la descripción de la imagen aquí

Nitina
fuente