node manager last instalar como node.js package npm

node.js - manager - npm last version



Instalar dependencias npm "globales" a través de package.json (3)

Debería probar esto: https://github.com/lastboy/package-script

Lo he estado usando para instalar paquetes globales npm directamente desde el paquete.json. Funciona bien para los clientes que no son técnicamente alfabetizados.

¡Incluso comprueba si los paquetes ya están instalados, si no los instala!

Esta pregunta ya tiene una respuesta aquí:

Tengo algunas dependencias "globales" (jshint, csslint, buster, etc.) que me gustaría tener instaladas automáticamente y ejecutables a través de la línea de comandos cuando mi paquete se instala a través de la npm install . es posible?

Actualmente, estoy haciendo lo siguiente de forma manual:

  1. npm install -g <package_name>
  2. desde mi proyecto: npm link <package_name>

Actualización: acaba de encontrar esta solicitud de función para npm. Parece que la configuración de scripts dentro de package.json es el camino a seguir.

Actualizar nuevamente: ¿O, después de leer los documentos de npm , se supone que debo usar un archivo .gyp ? Estoy confundido.


Me gusta mucho el patrón en el que instalas dependencias locales, luego utilizo un script bash que establece tu RUTA en ./node_modules/.bin .

Archivo: env.sh

# Add your local node_modules bin to the path for this command export PATH="./node_modules/.bin:$PATH" # execute the rest of the command exec "$@"

Entonces, puedes usar esta secuencia de comandos antes de cualquier comando bash. Si empareja eso con un script Makefile o npm:

Archivo: Makefile

lint : ./env.sh csslint my_styles

Archivo: package.json

"scripts": { "lint": "./env.sh csslint my_styles" }

Parece que estas tareas en estos archivos hacen referencia a csslint en alguna ubicación global, pero en realidad usan la versión en su bin node_modules.

El beneficio realmente asombroso de esto es que estas dependencias se pueden versionar fácilmente, al igual que los otros módulos de su nodo. Si se queda con una solución de instalación global, podría estar peleando con alguna versión específica en el sistema del usuario que se requiere para uno de sus otros proyectos.


No es posible especificar dependencias como "globales" de un package.json . Y, esto es por diseño como dice Isaac en esa solicitud de función a la que se hace referencia:

Sí, nunca vamos a hacer esto.

Pero, los "binarios" todavía se pueden usar cuando un paquete se instala localmente. Estarán en .../node_modules/.bin/ . Y, debería poder ponerlos en cola con un script de preinstall .

Sin embargo, si la serie de comandos es bastante larga (como sugerirían " jshint, csslint, buster, etc. "), es posible que desee considerar el uso de una herramienta de compilación como grunt para realizar las diversas tareas:

{ // ..., "scripts": { "preinstall": "grunt" } }