¿Cómo instalo un módulo globalmente usando npm?


202

Recientemente instalé Node.js y el módulo npm en OSX y creo que tengo un problema con la configuración:

npm install [MODULE] is not installing the node.js module to the default path 
which is /usr/local/lib/node_modules.

Respuestas:


347

Si desea instalar un módulo npm globalmente, asegúrese de usar el nuevo -gindicador, por ejemplo:

npm install forever -g

Las recomendaciones generales sobre la instalación del módulo npm desde 1.0rc (tomado de blog.nodejs.org ):

  • Si está instalando algo que desea usar en su programa, usando require ('lo que sea'), luego instálelo localmente , en la raíz de su proyecto.
  • Si está instalando algo que desea usar en su shell, en la línea de comando o algo así, instálelo globalmente , de modo que sus binarios terminen en su variable de entorno PATH.

Recientemente utilicé estas recomendaciones y se redujo sin problemas. Instalé para siempre globalmente (ya que es una herramienta de línea de comandos) y todos mis módulos de aplicación localmente.

Sin embargo, si desea utilizar algunos módulos a nivel mundial (es decir, express o mongodb), tome este consejo (también tomado de blog.nodejs.org ):

Por supuesto, hay algunos casos en los que desea hacer ambas cosas. Coffee-script y Express son buenos ejemplos de aplicaciones que tienen una interfaz de línea de comandos, así como una biblioteca. En esos casos, puede hacer uno de los siguientes:

  • Instalarlo en ambos lugares . En serio, ¿tienes poco espacio en el disco? Está bien, de verdad. Son pequeños programas de JavaScript.
  • Instálelo globalmente y luego npm link coffee-script o npm link express (si estás en una plataforma que soporta enlaces simbólicos.) A continuación, sólo tiene que actualizar la copia mundial para actualizar todos los enlaces simbólicos también.

La primera opción es la mejor en mi opinión. Simple, claro, explícito. El segundo es realmente útil si va a reutilizar la misma biblioteca en un montón de proyectos diferentes. (Más información sobre el enlace npm en una futura entrega).

No probé una de esas variaciones, pero parecen ser bastante sencillas.


77
Gracias por las aclaraciones. Isaacs debería reemplazar todo el archivo npm manfile y git wiki con el texto anterior. Podría aclarar la confusión masiva.
Mauvis Ledford

shweeet Esto fue útil, me sorprendió este cambio. En algún momento, npm install dio acceso a la línea de comandos, luego desapareció y no seguía el proyecto lo suficientemente cerca como para captar la transición.
Mark Essel

Esto explica por qué tuve un módulo de nodo en mi directorio de configuración de Apache. . .
Ian Hunter

1
Desde blog.node.js.org : Por lo general, los binarios globales se instalan en {prefix} / bin y los módulos globales se instalan en {prefix} / node_modules y los módulos locales están en ./node_modules, los ejecutables van en ./node_modules/.bin/ . Puede ejecutar npm prefixpara obtener el prefijo local y node prefix -gver el prefijo global :)
nacho4d

"Si está instalando algo que desea usar en su programa, usando require ('lo que sea'), instálelo localmente , en la raíz de su proyecto". - Creo que no es una buena idea si el módulo contiene binarios compilados: debe volver a compilarse en Linux y Windows correctamente. Creo que este tipo de módulos deben configurarse utilizando el entorno NODE_PATH variable ( nodejs.org/api/… )
Sneg

8

En una Mac, encontré que la salida contenía la información que estaba buscando:

$> npm install -g karma
...
...
> ws@0.4.25 install /usr/local/share/npm/lib/node_modules/karma/node_modules/socket.io/node_modules/socket.io-client/node_modules/ws
> (node-gyp rebuild 2> builderror.log) || (exit 0)
...
$> ls /usr/local/share/npm/bin
karma nf

Después de agregar /usr/local/share/npm/bina la export PATHlínea en mi .bash_profile, guardarlo e sourceiniciarlo, pude ejecutar

$> karma --help

normalmente.




1

Necesitas tener privilegios de superusuario,

 sudo npm install -g <package name>

-1

En Ubuntu, configure la ruta de node_modules en el archivo .bashrc

export PATH = "/ home / username / node_modules / .bin: $ PATH"


-5

Es posible que no tenga permisos de escritura para instalar un módulo de nodo en la ubicación global como /usr/local/lib/node_modules, en cuyo caso, ejecute npm install -g package como root.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.