113 votes

Les modules Global Node ne s'installent pas correctement. Commande non trouvée

J'ai un problème d'installation des modules de nœuds globaux et tout ce que je trouve en ligne dit que la solution est simplement d'ajouter -g. Ce qui n'est pas le problème. Je pense que c'est un problème de liaison ou de mauvais répertoire.

Voici ce que je fais :

$ npm install -g express
npm http GET https://registry.npmjs.org/express
npm http 304 https://registry.npmjs.org/express
npm http GET https://registry.npmjs.org/range-parser/0.0.4
npm http GET https://registry.npmjs.org/mkdirp/0.3.3
...downloads correctly

$ express myapp
bash: express: command not found

Cependant, lorsque j'exécute l'emplacement du lien direct vers express, cela fonctionne :

   $ /usr/local/share/npm/bin/express myapp

   create : myapp
   create : myapp/package.json
   create : myapp/app.js
... Builds app correctly

Où se trouve le module :

$ which node
/usr/local/bin/node
$ node -pe process.execPath
/usr/local/Cellar/node/0.8.20/bin/node
$ npm link express
/Users/bentonrr/Development/Personal/node_modules/express -> /usr/local/share/npm/lib/node_modules/express

Dans mon .bash_profile j'ai :

export PATH=/usr/local/bin:$PATH
export NODE_PATH=/usr/local/lib/node_modules:/usr/local/lib/node

Dois-je changer mon environnement Node pour télécharger dans le bon dossier ? Quelque chose n'est pas lié correctement ? Je suis perdu.

Gracias.

Autres spécifications :

$ node --version
v0.8.20
$ npm --version
1.2.11
$ brew --version
0.9.4
OSX Version 10.8.2

166voto

Brad Parks Points 5513

Cela peut signifier que le préfixe d'installation de votre nœud n'est pas celui que vous attendez.

Vous pouvez le régler comme suit :

npm config set prefix /usr/local

puis essayez d'exécuter npm install -g encore, et ça devrait marcher. Cela a marché pour moi sur un Mac, et la solution vient de ce site :

http://webbb.be/blog/command-not-found-node-npm/

EDIT : Notez que je viens de tomber sur ce problème sur un nouveau Mac que je suis en train d'installer, et j'ai dû faire la même chose. détaillé ici sur stackoverflow également.

104voto

Tim Smith Points 883

Ajouter $(npm get prefix)/bin à votre PATH (par exemple, dans .bashrc ), comme ceci :

echo "export PATH=$PATH:$(npm get prefix)/bin" >> ~/.bashrc

Pour plus d'informations, voir npm help npm :

mode global : npm installe les paquets dans le préfixe install à prefix/lib/node_modules et les bins sont installés dans prefix/bin.

Vous pouvez trouver le préfixe d'installation avec npm get prefix o npm config list | grep prefix .

18voto

Vicente Points 1

Mon npm n'a pas pu trouver les paquets globaux non plus. J'ai fait ce que Brad Parks a suggéré :

npm config set prefix /usr/local

Puis j'ai eu une erreur de permissions EACCES (DON'T USE sudo npm install -g <package> ) et l'a corrigé dans la documentation officielle de npm : https://docs.npmjs.com/resolving-eacces-permissions-errors-when-installing-packages-globally

  1. En ligne de commande, dans votre répertoire personnel, créez un répertoire pour les installations globales :

    mkdir ~/.npm-global

  2. Configurez npm pour utiliser le nouveau chemin du répertoire :

    npm config set prefix '~/.npm-global'

  3. Dans votre éditeur de texte préféré, ouvrez ou créez un fichier ~/.profile et ajoutez cette ligne :

    export PATH=~/.npm-global/bin:$PATH

  4. Sur la ligne de commande, mettez à jour vos variables système :

    source ~/.profile

  5. Ensuite, installez un paquet de manière globale et testez-le ! Par exemple :

    npm install -g awsmobile-cli awsmobile configure

11voto

lazyTank Points 385

Dans mon cas, la variable d'environnement NODE_PATH était vide. Vérifiez si elle est vide-

echo $NODE_PATH

si le NODE_PATH est vide. Ensuite, modifiez ~/.bash_profile et ajoutez NODE_PATH

nano ~/.bash_profile
export NODE_PATH=`npm root -g`
source ~/.bash_profile

Maintenant, installez à nouveau les modules npm et vérifiez s'ils sont installés dans le chemin d'accès. npm root -g

9voto

Adedoyin Akande Points 402

Pour les utilisateurs de Windows

Ajoutez ceci à votre parcours : "%AppData% \npm "

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