Gruñido.js: ¿Qué significa-save-dev en npm install grunt save save-dev


Acabo de empezar a usar Grunt.js . Es bastante difícil de configurar y estoy a punto de crear un archivo package.json.

Siguiendo este tutorial , dice que hay 3 formas de crear un archivo package.json.

El primero es hacer npm install grunt --save-dev

Pero, ¿qué significa --save-dev? Traté de mirar, pero termina en vano.

Author: dayuloli, 2013-10-07

5 answers

Save save-dev: Package aparecerá en sus devDependencies.

De acuerdo con el npm install docs.

Si alguien está planeando descargar y usar su módulo en su programa, entonces probablemente no quiera o necesite descargar y construir el marco externo de prueba o documentación que usa.

En otras palabras, cuando ejecuta npm install, se instalarán las devDependencies de su proyecto, pero las devDependencies para cualquier paquete que su aplicación depende de no se instalará; además, otras aplicaciones que tienen su aplicación como una dependencia no necesitan instalar sus devDependencies. Estos módulos solo deben ser necesarios al desarrollar la aplicación (por ejemplo, grunt, mocha, etc.).

Según el paquete .json docs .

Editar: Intento de visualizar lo que npm install hace:

  • tu proyecto
    • dependencia instalada
      • dependecy instalado
        • dependecy instalado
        • devDependency NO instalado
      • devDependency NO instalado
    • devDependency installed
      • dependecy instalado
      • devDependency NO instalado
 295
Author: Andreas Hultgren,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-10-15 12:41:33

Hay (al menos) dos tipos de dependencias de paquetes que puede indicar en su paquete.archivos json:

  1. Los paquetes que se requieren para usar su módulo se enumeran bajo la propiedad "dependencies". Usando npm puedes agregar esas dependencias a tu paquete.archivo json de esta manera:

    npm install --save packageName
    
  2. Los paquetes necesarios para ayudar a a desarrollar su módulo están listados bajo la propiedad "devDependencies". Estos paquetes no son necesario para que otros usen el módulo, pero si quieren ayudar a desarrollar el módulo, estos paquetes serán necesarios. Usando npm puedes agregar esas dependencias de desarrollo a tu paquete.archivo json de esta manera:

    npm install --save-dev packageName
    
 87
Author: Lonnie Best,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-06-28 18:18:32

Para agregar a la respuesta de Andreas, ya que aún no puedo comentar, puede instalar solo las dependencias usando: npm install --production

 30
Author: machinehead115,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-11-24 19:56:27

La documentación de npm para npm install <package-name> --save y npm install <package-name> --save-dev se puede encontrar aquí:

Https://docs.npmjs.com/getting-started/using-a-package.json#the-save-and-save-dev-install-flags

Un archivo package.json declara metadatos sobre el módulo que está desarrollando. Ambos comandos antes mencionados modifican este archivo package.json. --save declarará el paquete instalado (en este caso, grunt) como una dependencia para su módulo; --save-dev declarará como una dependencia para el desarrollo de su módulo.

Pregúntese: ¿será necesario el paquete instalado para el uso de mi módulo, o solo será necesario para desarrollarlo?

 6
Author: Niko Kovacevic,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-01-24 21:19:14

Cuando utilice el parámetro "save save" su dependencia irá dentro del paquete #1.json. Cuando usas el parámetro "save save-dev" tu dependencia irá dentro del paquete #2 in.json.

1) "dependencias": estos paquetes son requeridos por su aplicación en producción.

2)" devDependencies": estos paquetes solo son necesarios para el desarrollo y las pruebas

 2
Author: Sathesh,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-09-05 00:23:55