npm es el gestor de dependencias oficial de NodeJS, sirve para mantener el software del que dependen las aplicaciones que se desarrollan con Javascript o Node.
npm son las siglas de Node Package Manager y básicamente consiste en una herramienta de línea de comandos que se usa para instalar y actualizar dependencias en proyectos Javascript o NodeJS, así como publicar packages que se podrán usar en otros proyectos.
Las dependencias son todo aquel software en el que nos basamos para construir aplicaciones. Son todas las librerías de terceros, frameworks y similares sobre los que construimos cualquier proyecto. Estas piezas de software nos permiten ir más rápido y no reinventar la rueda constantemente, sino simplemente implementar mediante el código publicado por otras personas o equipos de desarrollo.
Gracias a npm podemos descargar el código de las librerías que nos hacen falta en un proyecto y además, cuando lo deseamos, actualizar esas librerías para obtener las versiones más modernas, estables o corregir sus problemas de seguridad.
Además, npm también permite publicar packages de Node o Javascript en general, en un repositorio que mantiene el propio npm. Estos repositorios pueden ser públicos, donde se colocan piezas de software libre, o privados, donde se publica código que pertenece exclusivamente a una organización. El repositorio donde se encuentran los packages públicos está en npmjs.com.
La herramienta npm proviene del ecosistema Node, sin embargo, se puede usar tanto en aplicaciones backend como en aplicaciones frontend para el navegador.
Más información:
Artículos destacados de npm:
Instalar npm
No hace falta mucho para instalar npm, simplemente instalar NodeJS, ya que npm se instala de manera automática cuando se instala Node.
La única recomendación sería usar un sistema como nvm para instalar Node, lo que nos permite disponer de varias versiones de NodeJS en el mismo ordenador, lo que a veces es necesario si llevas varios proyectos en tu ordenador de desarrollo, que pueden requerir versiones de node o npm distintas.
Inicializar un proyecto Javascript o Node para gestionar las dependencias con npm
Para poder usar npm para la gestión de las dependencias de un proyecto usamos el comando siguiente:
npm init
Ese comando correrá un asistente que nos solicitará diversos tipos de informaciones, necesarias para crear el archivo package.json
.
Si deseamos que ese archivo se cree directamente sin necesidad de preguntarnos nada, podemos lanzar el comando con el flag -y.
npm init -y
Ambos comandos simplemente crearán el archivo package.json
en la carpeta donde acabamos de lanzarlos. A partir de este punto podremos usar npm para instalar dependencias en este proyecto.
Cómo instalar dependencias con npm
Para instalar dependencias con npm (Node Package Manager) usamos la consola de comandos. Nos debemos meter en la carpeta del proyecto y haberlo inicializado con npm init
previamente, tal como se describió en el bloque anterior.
Para instalar una nueva dependencia y agregarla a tu package.json
, usamos el comando npm install
seguido del nombre del paquete que se necesita. Por ejemplo:
npm install express
Esto instalará el paquete express
y lo añadirá a la lista de dependencias en tu package.json
.
Instalar todas las dependencias listadas en package.json
Otra vía que puedes usar para instalar las dependencias ocurre cuando ya tienes un proyecto en el que tu package.json
contiene la lista de dependencias que se deben incorporar para que funcione.
En estos casos, si se quiere instalar las dependencias listadas en el package.json
solo se necesita lanzar este comando:
npm install
A veces podrás encontrar que se usa este mismo comando con su shortcut:
npm i
Dependencias de desarrollo y dependencias "comunes" en el package.json
Para entender npm y la gestión de dependencias en proyectos Javascript y Node es importante saber diferenciar entre las dependencias "comunes" o las dependencias "de desarrollo".
A veces podemos hacer referencia a dependencias de producción (o simplemente "dependencias") a las dependencias "comunes". Por su parte dependencias de desarrollo es siempre entendido por ese mismo término.
Cada tipo de dependencia tiene un propósito distinto en el ciclo de desarrollo de una aplicación.
Dependencias de Producción
Las dependencias de producción son aquellas que son necesarias para que la aplicación funcione correctamente en el entorno de producción. Esto incluye todas las librerías que se ejecutan como parte del funcionamiento normal de la aplicación.
Por ejemplo, si estás construyendo una aplicación web con Express, necesitarás incluir Express como una dependencia de producción porque sin ella, tu servidor no podría funcionar.
Para instalar una dependencia de producción y añadirla automáticamente a tu archivo package.json
, utilizas el comando npm install
seguido del nombre del paquete:
npm install express
Este comando instala el paquete en la carpeta node_modules
y lo añade bajo el campo "dependencies"
en tu package.json
.
Dependencias de Desarrollo
Las dependencias de desarrollo son aquellas que se necesitan solo durante el desarrollo o el mantenimiento de la aplicación, pero no son necesarias para ejecutar la aplicación en producción. Esto incluye herramientas como compiladores de código, linters, y sistemas de pruebas.
Por ejemplo, si usas webpack
para empaquetar tus aplicaciones o jest
para realizar pruebas, estos se considerarían dependencias de desarrollo porque no son necesarios en el entorno de producción.
Para instalar una dependencia de desarrollo y añadirla a tu package.json
, utilizas el comando npm install
con el flag --save-dev
:
npm install jest --save-dev
Muchas veces lo verás usar con el flag shortcut -D
:
npm install jest -D
Este comando instala el paquete y lo añade bajo el campo "devDependencies"
en tu package.json
.
Crea artículos, recursos o comparte información sobre npm
Temas relacionados
Preguntas y respuestas de npm
Se han recibido 3 faqs en npm