Contenido

Trabajando con el CLI de npm

Npm como tal es una compañía y su gestor de dependencias en particular no es parte de Node.js, simplemente se trata de una herramienta externa que ha ganado tanta popularidad como para integrarse dentro del ecosistema. Sin embargo, no es la única opción, puedes usar otros gestores de dependencias como es el caso de Yarn (creado por Facebook).

Cuando hablamos de NPM, a grandes rasgos podemos diferenciar:

  • CLI: El command line interface que viene integrado en Node.js para la gestión de dependencias e interactuar con el Package.json.
  • Registry: El registro de paquetes al que puedes vía web o realizar tareas de publicación, versionado, etc. a través del CLI.

En este artículo en concreto vas a profundizar en el uso del CLI de npm.

Entornos de dependencias

Cuando trabajas con el CLI de npm debes tener en cuenta que puedes gestionar dependencias en dos niveles diferentes:

  1. Global: Dependencias se instalan a nivel global para toda la máquina.
  2. Local (proyecto): Las dependencias se instalan en el ámbito de proyecto.

Debes prestar especial atención a no utilizar una dependencia instalada a nivel GLOBAL y que no se encuentre definida en tu Package.json. Ya que de lo contrario al desplegar tu aplicación en un servidor fallara.

Comandos a nivel GLOBAL

  • npm ls -g: Lista el arbol de dependencias instaladas con diferentes niveles. Puedes añadir el flag –depth=0 para gestionar cuantos niveles mostrar.
  • npm ll -g: Funciona igual que el comando anterior pero añadiendo más información del paquete; descripción, repositorio, etc.
  • npm i -g <paquete>: Instalas a nivel global un paquete determinado. Añadiendo el flag –dry-run te indica exactamente el paquete a instalarse pero no llega a instalarse.

Comandos a nivel LOCAL (Proyecto)

  • npm init: Creas un Package.json para iniciar un proyecto
  • npm update: Actualiza todas las dependencias que hay definidas en Package.json
  • npm update <paquete>: Actualiza una dependencia concreta.

Comandos de instalación

Creo que merece un espacio al margen del resto de comandos puesto que existen variaciones para comprender la versión de un paquete determinado que estas instalado.

  • npm i <paquete>: Instalas un paquete determinado.
  • npm i --save-dev <paquete>: Instalas un paquete como dependencia de desarrollo. Lleva ^ también.
  • npm i --save-optional <paquete>: Instalas un paquete en la última version disponible pero como dependencia de opcional.

Formas de especificar un paquete:

  • <paquete>: Se instala por defecto en la última version disponible. Añade el prefijo ^ antes del número de version. Ejemplo { lodash: '^4.17.15' }
  • <paquete>@version: Instalas una versión especifica del paquete.