La función principal de NPM es instalar y gestionar las dependencias de nuestro proyecto. Para ello, como sabemos, registra las dependencias en el fichero package.json
.
Estas dependencias están organizadas en dos categorías:
- Dependencies: Dependencias requeridas para la ejecución
- DevDependencies: Dependencias necesarias solo durante el desarrollo
Si tenemos nuestras dependencias correctamente configurados en el archivo package.json
, podemos instalarlas simplemente con el siguiente comando,
npm install
Este comando leerá el archivo package.json
y descargará todas las dependencias especificadas en la sección dependencies
. Estas dependencias se almacenarán en una carpeta llamada node_modules
en el directorio del proyecto.
Esto es muy habitual cuando bajamos un proyecto Open Source. Al publicar un proyecto, este se guarda en los repositorios (como Github) sin las librerías. Esto es lógico, es para ahorrar espacio.
Es un error muy frecuente, al principio, descargar un proyecto Open Source y pensar que no funciona. En muchas ocasiones es, simplemente, que nos hemos olvidado de instalar las dependencias con este comando
Instalación de dependencias requeridas
Cuando se ejecuta npm install
sin ninguna opción adicional, NPM instalará las dependencias que se encuentran bajo la sección dependencies
en el archivo package.json
. Estas son las dependencias necesarias para que la aplicación funcione correctamente en un entorno de producción.
Supongamos que tenemos un fichero package.json
como el siguiente,
{
"name": "mi-proyecto",
"version": "1.0.0",
"dependencies": {
"express": "^4.17.1",
"lodash": "^4.17.21"
}
}
En este caso, npm install
descargará e instalará las versiones más recientes de las bibliotecas express
y lodash
.
Instalación de dependencias de desarrollo
Si deseamos instalar las dependencias necesarias para el desarrollo del proyecto (como pruebas unitarias, herramientas de compilación o pruebas de estilo de código), debemos usar la opción --dev
o su forma corta -D
. Por ejemplo:
npm install --dev
Esto instalará todas las dependencias que se encuentran en la sección devDependencies
de nuestro archivo package.json
.
Recordemos que estas dependencias no se incluirán en el paquete final cuando distribuyamos nuestra aplicación