Como instalo um módulo globalmente usando o npm?


202

Eu instalei recentemente o Node.js e o módulo npm no OSX e tenho um problema com as configurações que penso:

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

Respostas:


347

Se você deseja instalar um módulo npm globalmente, certifique-se de usar o novo -gsinalizador, por exemplo:

npm install forever -g

As recomendações gerais sobre a instalação do módulo npm desde 1.0rc (extraídas de blog.nodejs.org ):

  • Se você estiver instalando algo que deseja usar no seu programa, usando require ('qualquer'), instale-o localmente , na raiz do seu projeto.
  • Se você estiver instalando algo que deseja usar no shell, na linha de comando ou algo assim, instale-o globalmente , para que seus binários acabem na sua variável de ambiente PATH.

Recentemente, usei essas recomendações e elas caíram bastante bem. Eu instalei para sempre globalmente (já que é uma ferramenta de linha de comando) e todos os meus módulos de aplicativo localmente.

No entanto, se você quiser usar alguns módulos globalmente (por exemplo, express ou mongodb), siga este conselho (também retirado de blog.nodejs.org ):

Obviamente, existem alguns casos em que você deseja fazer as duas coisas. Coffee-script e Express são bons exemplos de aplicativos que possuem uma interface de linha de comando, além de uma biblioteca. Nesses casos, você pode executar um dos seguintes procedimentos:

  • Instale nos dois lugares . Sério, você está com pouco espaço em disco? Está tudo bem, sério. São pequenos programas JavaScript.
  • Instale-o globalmente e, em seguida, npm link coffee-script ou npm link express (se você estiver em uma plataforma que suporte links simbólicos.) Em seguida, você só precisará atualizar a cópia global para atualizar também todos os links simbólicos.

A primeira opção é a melhor na minha opinião. Simples, claro, explícito. O segundo é realmente útil se você quiser reutilizar a mesma biblioteca em vários projetos diferentes. (Mais informações no link npm em uma parcela futura.)

Não testei uma dessas variações, mas elas parecem bem diretas.


7
Obrigado pelos esclarecimentos. Isaacs deve substituir o wiki completo do npm manfile e git pelo texto acima. Poderia esclarecer a confusão em massa.
Mauvis Ledford

shweeet. Isso veio a calhar, fui pego por essa mudança. Em algum momento, o npm install deu acesso à linha de comando e desapareceu e eu não estava acompanhando o projeto de perto o suficiente para capturar a transição.
Mark Essel 27/05

Isso explica por que um módulo de nó acabou no meu diretório de configuração do Apache. . .
11134 Ian Caçador

1
Do blog.node.js.org : Normalmente, binários globais são instalados em {prefix} / bin e módulos globais são instalados em {prefix} / node_modules e os módulos locais estão em ./node_modules, os executáveis ​​são acessados ​​em ./node_modules/.bin/ . Você pode executar npm prefixpara obter o prefixo local e node prefix -gpara ver o prefixo global :) #
314 nacho4d

"Se você estiver instalando algo que deseja usar no seu programa, usando require ('qualquer coisa'), instale-o localmente , na raiz do seu projeto." - Eu acho que não é uma boa idéia se o módulo contiver binário compilado: ele precisa ser recompilado no linux e no windows corretamente. Eu acho que esse tipo de módulos têm de ser definidos usando ambiente NODE_PATH vriable ( nodejs.org/api/... )
Sneg

8

Em um Mac, achei que a saída continha as informações que estava procurando:

$> 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

Depois de adicionar /usr/local/share/npm/binà export PATHlinha no meu .bash_profile, salvá-lo e sourceinseri-lo, consegui executar

$> karma --help

normalmente.




1

Você precisa ter privilégios de superusuário,

 sudo npm install -g <package name>

-1

No Ubuntu, defina o caminho de node_modules no arquivo .bashrc

exportar PATH = "/ home / nome de usuário / node_modules / .bin: $ PATH"


-5

Talvez você não tenha permissões de gravação para instalar um módulo de nó no local global, como /usr/local/lib/node_modules, nesse caso, execute o npm install -g package como root.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.