Les modules de nœud global ne s’installent pas correctement. Commande non trouvée

J’ai du mal à installer des modules de nœuds globaux et tout ce que je trouve en ligne indique que la résolution consiste simplement à append -g. Ce qui n’est pas le problème. Je crois que c’est un problème de liaison ou un problème de répertoire erroné.

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 je lance l’emplacement du lien direct pour l’exprimer, cela fonctionne:

  $ /usr/local/share/npm/bin/express myapp create : myapp create : myapp/package.json create : myapp/app.js ... Builds app correctly 

Où le module est:

 $ 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 fichier .bash_profile, j’ai:

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

Dois-je modifier mon environnement de nœud pour le télécharger dans le bon dossier? Est-ce que quelque chose ne se lie pas correctement? Je suis perdu..

Merci!

Autres spécifications:

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

Ajoutez /usr/local/share/npm/bin à votre PATH (par exemple, dans .bashrc ).

Pour plus d’informations, voir npm help npm :

mode global: npm installe les paquets dans le préfixe d’installation de prefix / lib / node_modules et les bacs sont installés dans prefix / bin.

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

Cela peut signifier que le préfixe d’installation de votre noeud n’est pas ce que vous attendez.

Vous pouvez le définir ainsi:

npm config set prefix /usr/local

puis essayez à nouveau npm install -g , et ça devrait marcher. Travaillé 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 juste de retrouver ceci sur un nouveau Mac que je suis en train de configurer, et que je devais aussi faire le processus détaillé ici sur stackoverflow .

Je n’installe pas de truc npm, via sudo, jamais! J’ai mes propres raisons, mais j’essaie simplement de garder les choses simples, et basées sur l’utilisateur, puisque c’est un monde de développement d’utilisateurs, et tout le monde n’a pas access root, et root / sudo installe des choses comme ça. avec. Après tout, tous les développeurs devraient pouvoir suivre ces instructions, et pas seulement les utilisateurs sudo privilégiés.

Ce système particulier est un RHEL7 accessible via SSH:

Souvent, il faut différentes versions de nœud, donc j’utilise NVM https://github.com/creationix/nvm

Cela étant dit, je peux vous montrer un exemple de travail pour les installations globales de -g , en utilisant NVM, NPM et les chemins de noeud sans racine.

.npm-packages votre préfixe pour les .npm-packages si ce n’est déjà fait. (note, c’est un trait d’union, pas un trait de soulignement)

 nvm config ls prefix = "/home//.npm-packages" 

Ensuite, ajustez votre ~ / .bash_profile ou .bashrc si vous préférez lire sur pourquoi et qui ici , avec les informations suivantes.

 #PATH EXPORTS NODE_MODULES=$HOME/.npm NPM_PACKAGES=$HOME/.npm-packages/bin export PATH=$PATH:$HOME/bin:$NODE_MODULES:$NPM_PACKAGES #NVM ENABLE export NVM_DIR="$HOME/.nvm" [ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm 

Cela couvre à peu près tous les chemins. Par exemple, si vous installez gulp comme ceci, npm install -g gulp it des liens symboliques dans ~/.npm-packages/bin (notez que c’est un trait d’union, pas un trait de soulignement). (pas besoin de gulp-cli ou de gulp-cl )

Vous pouvez à peu près remplacer / commenter toutes les autres exportations de chemin de noeud. Vous pouvez mettre cette information de chemin sous toute autre information de chemin que vous avez déjà, en toute sécurité, sans écraser ces choses.

Le problème que je rencontrais manquait les fichiers binarys, car le fichier .npmrc spécifique à l’utilisateur dans mon répertoire personnel avait bin-links binarys définis sur false , bien que la default is true .

Juste au cas où cela serait votre problème, vérifiez qu’aucun de vos fichiers .npmrc ne soit défini sur false.

Ensuite, la réinstallation de tous les modules créera les binarys au prefix pour que votre PATH puisse les voir.

Pas

Tout d’abord, supprimez le nœud:

  sudo rm -rf /usr/local/lib/node_modules/jitsu npm cache clear sudo npm install jitsu -g 

Deuxièmement, créez .bash_rc:

  vi ~/.bash_rc 

Copiez les éléments suivants et collez-les dans le fichier, ouvert à l’étape 2:

  [[ -s ~/.bashrc ]] && source ~/.bashrc export PATH=/usr/local/share/npm/bin:$PATH 

Exécuter Jitsu. Exécutez vi ~ / .bash_profile, voici ce que vous devriez voir:

  [[ -s ~/.bashrc ]] && source ~/.bashrc export PATH=/usr/local/share/npm/bin:$PATH # {{{ # Node Completion - Auto-generated, do not touch. shopt -s progcomp for f in $(command ls ~/.node-completion); do f="$HOME/.node-completion/$f" test -f "$f" && . "$f" done # }}} 

J’ai trouvé la réponse pour supprimer Node de cet article: JITSU ÉCHOUÉ POUR INSTALLER OSX [noeud 0.8.17 et NPM 1.2.0] WTF