235 votes

Comment installer un module globalement à l'aide de npm ?

J'ai récemment installé Node.js et le module npm sur OSX et j'ai un problème avec les paramètres je pense :

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

396voto

schaermu Points 6251

Si vous souhaitez installer un module npm de manière globale, assurez-vous d'utiliser la nouvelle fonction -g par exemple :

npm install forever -g

Les recommandations générales concernant l'installation des modules npm depuis la version 1.0rc (tirées de blog.nodejs.org ) :

  • Si vous installez quelque chose que vous voulez utiliser dans votre programme, en utilisant require('whatever'), alors l'installer localement à la racine de votre projet.
  • Si vous installez quelque chose que vous voulez utiliser dans votre shell, sur la ligne de commande ou autre, installer l'installer globalement afin que ses binaires se retrouvent dans votre variable d'environnement PATH de votre environnement.

J'ai récemment utilisé ces recommandations et cela s'est bien passé. J'ai installé forever globalement (puisque c'est un outil en ligne de commande) et tous mes modules d'application localement.

Cependant, si vous souhaitez utiliser certains modules de manière globale (par exemple express ou mongodb), suivez ce conseil (également tiré de blog.nodejs.org ) :

Bien sûr, il y a des cas où vous voulez faire les deux. Café-script et Express sont tous deux de bons exemples d'applications qui ont une interface en ligne de commande, ainsi ainsi qu'une bibliothèque. Dans ces cas, vous pouvez faire l'une des choses suivantes :

  • Installez-le dans les deux endroits . Sérieusement, es-tu à court d'espace disque disque ? C'est bon, vraiment. Ils sont minuscules programmes JavaScript.
  • Installez-le globalement, et ensuite npm link coffee-script ou npm link express (si vous êtes sur une plateforme qui supporte les les liens symboliques). Il vous suffit alors de mettre à jour la copie globale pour mettre à jour tous tous les liens symboliques.

La première option est la meilleure à mon avis. opinion. Simple, claire, explicite. Le site seconde est vraiment pratique si vous réutiliser la même bibliothèque dans un projets différents. (Plus d'informations sur lien npm dans un prochain épisode).

Je n'ai pas testé l'une de ces variantes, mais elles semblent être assez simples.

8 votes

Merci pour les éclaircissements. Isaacs devrait remplacer l'intégralité du manfile npm et du wiki git par le texte ci-dessus. Cela pourrait dissiper la confusion générale.

0 votes

Shweeet. C'était pratique, je me suis fait avoir par ce changement. À un moment donné, npm install donnait un accès en ligne de commande, puis il a disparu et je ne suivais pas le projet d'assez près pour saisir la transition.

0 votes

Cela explique pourquoi un module node s'est retrouvé dans le répertoire de configuration d'Apache .

8voto

Droogans Points 2098

Sur un Mac, j'ai constaté que la sortie contenait les informations que je recherchais :

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

Après avoir ajouté /usr/local/share/npm/bin à la export PATH ligne dans mon .bash_profile en le sauvegardant, et source J'ai été en mesure d'exécuter

$> karma --help

normalement.

5voto

dryprogrammers Points 913

J'aime utiliser un fichier package.json à la racine du dossier de votre application.

En voici un que j'utilise

nvm use v0.6.4

http://pastie.org/3232212

npm install

2voto

Cody Points 1198

J'ai eu des problèmes pour installer Express sur Ubuntu :

Si pour une raison quelconque la commande NPM est manquante, testez la commande npm avec npm help . Si ce n'est pas le cas, suivez ces étapes - http://arnolog.net/post/8424207595/installing-node-js-npm-express-mongoose-on-ubuntu

Si la commande Express ne fonctionne pas, essayez :

sudo npm install -g express

Cela a permis de tout faire fonctionner comme j'en ai l'habitude avec Windows7 et OSX.

J'espère que cela vous aidera !

-5voto

Dmitri Bouianov Points 334

Il se peut que vous n'ayez pas les droits d'écriture pour installer un module de nœud dans l'emplacement global tel que /usr/local/lib/node_modules Dans ce cas, exécutez npm install -g package en tant que Root.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X