Come installo un modulo globalmente usando npm?

Ho recentemente installato Node.js e il modulo npm su OSX e ho un problema con le impostazioni che penso:

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

Se si desidera installare globalmente un modulo npm, assicurarsi di utilizzare il nuovo flag -g , ad esempio:

npm install forever -g

Le raccomandazioni generali relative all’installazione del modulo npm da 1.0rc (tratte da blog.nodejs.org ):

  • Se stai installando qualcosa che vuoi usare nel tuo programma, usando require (‘qualunque cosa’), quindi installalo localmente , alla radice del tuo progetto.
  • Se stai installando qualcosa che vuoi usare nella tua shell, sulla riga di comando o qualcosa del genere, installalo globalmente , in modo che i suoi binari finiscano nella variabile d’ambiente PATH.

Recentemente ho usato questi consigli ed è andato giù senza intoppi. Ho installato per sempre a livello globale (dato che è uno strumento da riga di comando) e tutti i miei moduli applicativi localmente.

Tuttavia, se vuoi utilizzare alcuni moduli a livello globale (ad esempio, express o mongodb ), segui questo consiglio (preso anche da blog.nodejs.org ):

Certo, ci sono alcuni casi in cui vuoi fare entrambe le cose. Coffee-script e Express sono entrambi buoni esempi di app che hanno un’interfaccia a riga di comando e una libreria. In questi casi, puoi eseguire una delle seguenti operazioni:

  • Installalo in entrambi i posti . Seriamente, sei così corto sullo spazio del disco? Va bene, davvero. Sono piccoli programmi JavaScript.
  • Installalo globalmente, quindi npm link coffee-script o npm link express (se sei su una piattaforma che supporta collegamenti simbolici.) Quindi devi solo aggiornare la copia globale per aggiornare anche tutti i link simbolici.

La prima opzione è la migliore secondo me. Semplice, chiaro, esplicito. Il secondo è davvero utile se si intende riutilizzare la stessa libreria in una serie di progetti diversi. (Altro sul link npm in una prossima puntata.)

Non ho provato una di quelle varianti, ma sembrano abbastanza semplici.

Su un Mac, ho trovato che l’output conteneva le informazioni che stavo cercando:

 $> npm install -g karma ... ... > [email protected] 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 

Dopo aver aggiunto /usr/local/share/npm/bin alla riga export PATH nel mio file .bash_profile , salvandolo e /usr/local/share/npm/bin , sono stato in grado di eseguire

 $> karma --help 

normalmente.

Mi piace usare un file package.json nella radice della cartella dell’app.

Ecco uno che uso

 nvm use v0.6.4 

http://pastie.org/3232212

 npm install 

Ho avuto problemi con l’installazione di Express su Ubuntu:

Se per qualche motivo manca il comando NPM, testare il comando npm help con npm help . Se non ci sono, segui questi passaggi – http://arnolog.net/post/8424207595/installing-node-js-npm-express-mongoose-on-ubuntu

Se solo il comando Express non funziona, prova:

 sudo npm install -g express 

Ciò ha reso tutto funzionante come sono abituato a Windows7 e OSX.

Spero che questo ti aiuti!

In Ubuntu, imposta il percorso di node_modules nel file .bashrc

export PATH = “/ home / nomeutente / node_modules / .bin: $ PATH”

Potresti non avere permessi di scrittura per installare un modulo nodo nella posizione globale come /usr/local/lib/node_modules , nel cui caso eseguire npm install -g package come root.