La diferencia entre --save
y --save-dev
puede no ser notoria inmediatamente si los ha probado en sus propios proyectos. Así que aquí hay algunos ejemplos ...
Digamos que estaba creando una aplicación que utilizaba el paquete de momento para analizar y mostrar fechas. Su aplicación es un planificador, por lo que realmente necesita este paquete para ejecutarse, como en: no se puede ejecutar sin él . En este caso usarías
npm install moment --save
Esto crearía un nuevo valor en su paquete.json
"dependencies": {
...
"moment": "^2.17.1"
}
Cuando está desarrollando, realmente ayuda usar herramientas como conjuntos de pruebas y puede necesitar jasmine-core y karma . En este caso usarías
npm install jasmine-core --save-dev
npm install karma --save-dev
Esto también crearía un nuevo valor en su paquete.json
"devDependencies": {
...
"jasmine-core": "^2.5.2",
"karma": "^1.4.1",
}
No necesita el conjunto de pruebas para ejecutar la aplicación en su estado normal, por lo que es una --save-dev
dependencia de tipo, nada más. Puedes ver cómo si no entiendes lo que realmente está sucediendo, es un poco difícil de imaginar.
Tomado directamente de NPM docs docs # dependencias
Dependencias
Las dependencias se especifican en un objeto simple que asigna un nombre de paquete a un rango de versiones. El rango de versiones es una cadena que tiene uno o más descriptores separados por espacios. Las dependencias también se pueden identificar con una URL tarball o git.
No ponga arneses de prueba o transpiladores en su objeto de dependencias. Ver devDependencies , a continuación.
Incluso en los documentos, le pide que use --save-dev para módulos como los arneses de prueba.
Espero que esto ayude y sea claro.