¿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.


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.


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í


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.


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?


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

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.


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/


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 .


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.


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.


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í

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.