Hace un tiempo, publicamos una guía para administrar paquetes de Python usando PIP . Hoy, vamos a discutir cómo administrar paquetes de NodeJS usando Npm. NPM es el registro de software más grande que contiene más de 600 000 paquetes. Todos los días, los desarrolladores de todo el mundo comparten y descargan paquetes a través de npm. En esta guía, explicaré los conceptos básicos para trabajar con npm, como instalar paquetes (local y globalmente), instalar cierta versión de un paquete, actualizar, eliminar y administrar paquetes de NodeJS, etc.
Instalación de NPM
Dado que npm está escrito en NodeJS, necesitamos instalar NodeJS para poder usar npm. Para instalar NodeJS en diferentes distribuciones de Linux, consulte el siguiente enlace.
- Cómo instalar NodeJS en Linux
Una vez instalado, asegúrese de que NodeJS y NPM se hayan instalado correctamente. Hay un par de maneras de hacer esto.
Para comprobar dónde se ha instalado el nodo, ejecute el siguiente comando:
$ which node /home/sk/.nvm/versions/node/v9.4.0/bin/node
Comprueba su versión:
$ node -v v9.4.0
Inicie sesión en la sesión de Node REPL:
$ node > .help .break Sometimes you get stuck, this gets you out .clear Alias for .break .editor Enter editor mode .exit Exit the repl .help Print this help message .load Load JS from a file into the REPL session .save Save all evaluated commands in this REPL session to a file > .exit
Compruebe dónde se instaló npm:
$ which npm /home/sk/.nvm/versions/node/v9.4.0/bin/npm
Y la versión:
$ npm -v 5.6.0
¡Estupendo! ¡Node y NPM se han instalado y funcionan! Como habrás notado, instalé NodeJS y NPM en mi directorio $HOME para evitar problemas de permisos al instalar módulos globalmente. Este es el método recomendado por el equipo de NodeJS.
Bueno, sigamos adelante para ver cómo administrar los módulos (o paquetes) de NodeJS usando npm.
Administrar paquetes de NodeJS usando Npm
Instalación de módulos de NodeJS
Los módulos de NodeJS se pueden instalar de forma local o global (en todo el sistema). Ahora voy a mostrar cómo instalar un paquete localmente.
Instalar paquetes localmente
Para administrar paquetes localmente, normalmente usamos package.json archivo.
Primero, vamos a crear nuestro directorio de proyectos.
$ mkdir demo
$ cd demo
Cree un archivo package.json dentro del directorio de su proyecto. Para hacerlo, ejecute:
$ npm init
Ingrese los detalles de su paquete, como el nombre, la versión, el autor, la página de github, etc., o simplemente presione la tecla ENTER para aceptar los valores predeterminados y escriba SÍ para confirmar.
This utility will walk you through creating a package.json file. It only covers the most common items, and tries to guess sensible defaults. See `npm help json` for definitive documentation on these fields and exactly what they do. Use `npm install <pkg>` afterwards to install a package and save it as a dependency in the package.json file. Press ^C at any time to quit. package name: (demo) version: (1.0.0) description: demo nodejs app entry point: (index.js) test command: git repository: keywords: author: license: (ISC) About to write to /home/sk/demo/package.json: { "name": "demo", "version": "1.0.0", "description": "demo nodejs app", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "author": "", "license": "ISC" } Is this ok? (yes) yes
El comando anterior inicializa su proyecto y crea el archivo package.json.
También puede hacer esto de forma no interactiva usando el comando:
$ npm init --y
Esto creará un archivo package.json rápidamente con valores predeterminados sin la interacción del usuario.
Ahora instalemos el paquete llamado commander .
$ npm install commander
Salida de muestra:
npm notice created a lockfile as package-lock.json. You should commit this file. npm WARN [email protected] No repository field. + [email protected] added 1 package in 2.519s
Esto creará un directorio llamado "node_modules" (si aún no existe) en el directorio raíz del proyecto y descargue los paquetes en él.
Revisemos el archivo package.json.
$ cat package.json { "name": "demo", "version": "1.0.0", "description": "demo nodejs app", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "author": "", "license": "ISC", "dependencies": { "commander": "^2.13.0" } }
Verá que se han agregado las dependencias. El signo de intercalación (^ ) al frente del número de versión indica que, al instalar, npm extraerá la versión más alta del paquete que pueda encontrar.
$ ls node_modules/ commander
La ventaja del archivo package.json es que si tenía el archivo package.json en el directorio de su proyecto, puede simplemente escribir "npm install", luego npm buscará las dependencias que se enumeran en el archivo y las descargará todas. Incluso puede compartirlo con otros desarrolladores o insertarlo en su repositorio de GitHub, de modo que cuando escriban "npm install", obtendrán los mismos paquetes que usted tiene.
También puede notar otro archivo json llamado package-lock.json . Este archivo garantiza que las dependencias sigan siendo las mismas en todos los sistemas en los que está instalado el proyecto.
Para usar el paquete instalado en su programa, cree un archivo index.js (o cualquier nombre de su elección) en el directorio del proyecto con el código real, y luego ejecútelo usando el comando:
$ node index.js
Instalar paquetes globalmente
Si desea utilizar un paquete como herramienta de línea de comandos, es mejor instalarlo globalmente. De esta manera, funciona sin importar qué directorio sea su directorio actual.
$ npm install async -g + [email protected] added 2 packages in 4.695s
O,
$ npm install async --global
Para instalar una versión específica de un paquete, hacemos:
$ npm install [email protected] --global
Actualización de módulos de NodeJS
Para actualizar los paquetes locales, vaya al directorio del proyecto donde se encuentra el paquete.json y ejecute:
$ npm update
Luego, ejecute el siguiente comando para asegurarse de que todos los paquetes se hayan actualizado.
$ npm outdated
Si no hay ninguna actualización, no devuelve nada.
Para averiguar qué paquetes globales deben actualizarse, ejecute:
$ npm outdated -g --depth=0
Si no hay resultados, todos los paquetes se actualizan.
Para actualizar un paquete global único, ejecute:
$ npm update -g <package-name>
Para actualizar todos los paquetes globales, ejecute:
$ npm update -g <package>
Lista de módulos de NodeJS
Para listar los paquetes locales, vaya al directorio del proyecto y ejecute:
$ npm list [email protected] /home/sk/demo └── [email protected]
Como ves, he instalado el paquete "commander" en modo local.
Para enumerar paquetes globales, ejecute este comando desde cualquier ubicación:
$ npm list -g
Salida de muestra:
/home/sk/.nvm/versions/node/v9.4.0/lib ├─┬ [email protected] │ └── [email protected] └─┬ [email protected] ├── [email protected] ├── [email protected] ├── [email protected] ├── [email protected] ├── [email protected] ├── [email protected] [...]
Este comando enumerará todos los módulos y sus dependencias.
Para enumerar solo los módulos de nivel superior, utilice -- depth=0 opción:
$ npm list -g --depth=0 /home/sk/.nvm/versions/node/v9.4.0/lib ├── [email protected] └── [email protected]
Buscando módulos de NodeJS
Para buscar un módulo, use el comando "npm search":
npm search <search-string>
Ejemplo:
$ npm search request
Este comando mostrará todos los módulos que contienen la cadena de búsqueda "solicitud".
Eliminar módulos de NodeJS
Para eliminar un paquete local, vaya al directorio del proyecto y ejecute el siguiente comando para eliminar el paquete de sus node_modules directorio:
$ npm uninstall <package-name>
Para eliminarlo de las dependencias en package.json archivo, use el botón guardar marca como a continuación:
$ npm uninstall --save <package-name>
Para eliminar los paquetes instalados globalmente, ejecute:
$ npm uninstall -g <package>
Limpieza de caché de NPM
De manera predeterminada, NPM mantiene la copia de un paquete instalado en la carpeta de caché denominada npm en su directorio $HOME al instalarlo. Por lo tanto, puede instalarlo la próxima vez sin tener que volver a descargarlo.
Para ver los módulos almacenados en caché:
$ ls ~/.npm
La carpeta de caché se inunda con todos los paquetes antiguos con el tiempo. Es mejor limpiar el caché de vez en cuando.
A partir de [email protected], la memoria caché de npm se recupera automáticamente de los problemas de corrupción y se garantiza que los datos extraídos de la memoria caché sean válidos. Si quiere asegurarse de que todo sea coherente, ejecute:
$ npm cache verify
Para borrar todo el caché, ejecute:
$ npm cache clean --force
Ver la configuración de NPM
Para ver la configuración de npm, escriba:
$ npm config list
O,
$ npm config ls
Salida de muestra:
; cli configs metrics-registry = "https://registry.npmjs.org/" scope = "" user-agent = "npm/5.6.0 node/v9.4.0 linux x64" ; node bin location = /home/sk/.nvm/versions/node/v9.4.0/bin/node ; cwd = /home/sk ; HOME = /home/sk ; "npm config ls -l" to show all defaults.
Para mostrar la ubicación global actual:
$ npm config get prefix /home/sk/.nvm/versions/node/v9.4.0
Y, eso es todo por ahora. Lo que acabamos de cubrir aquí es solo lo básico. La NPM es un tema muy amplio. Para obtener más detalles, diríjase a Introducción a NPM guía.