Commande Gulp introuvable après l'installation

97

J'ai installé gulp (globalement) et il semble que cela a fonctionné car il a exécuté ce code:

├── tildify@0.2.0
├── interpret@0.3.5
├── pretty-hrtime@0.2.1
├── deprecated@0.0.1
├── archy@0.0.2
├── minimist@0.2.0
├── semver@2.3.2
├── orchestrator@0.3.7 (stream-consume@0.1.0, sequencify@0.0.7, end-of-stream@0.1.5)
├── chalk@0.5.1 (escape-string-regexp@1.0.1, ansi-styles@1.1.0, supports-color@0.2.0, strip-ansi@0.3.0, has-ansi@0.1.0)
├── gulp-util@2.2.20 (lodash._reinterpolate@2.4.1, dateformat@1.0.8-1.2.3, vinyl@0.2.3, through2@0.5.1, multipipe@0.1.1, lodash.template@2.4.1)
├── liftoff@0.12.0 (extend@1.2.1, minimist@0.1.0, resolve@0.7.4, findup-sync@0.1.3)
└── vinyl-fs@0.3.5 (graceful-fs@3.0.2, lodash@2.4.1, mkdirp@0.5.0, strip-bom@0.3.1, vinyl@0.2.3, through2@0.5.1, glob-watcher@0.0.6, glob-stream@3.1.14)

Mais quand je tape gulpça dit-bash: gulp: command not found

Une idée de ce qui se passe?

iluvpinkerton
la source
4
Pour résoudre ce problème, je l' ai fait sudo install gulp -g. qui a fonctionné
Mr_Green
10
Mr_Green signifiait: sudo npm install gulp -g
jasonleonhard

Réponses:

174

Il s'avère que npm a été installé dans le mauvais répertoire, j'ai donc dû changer le «préfixe de configuration npm» en exécutant ce code:

npm config set prefix /usr/local

Ensuite, j'ai réinstallé gulp globalement (avec le paramètre -g) et cela a fonctionné correctement.

C'est dans cet article que j'ai trouvé la solution: http://webbb.be/blog/command-not-found-node-npm

iluvpinkerton
la source
2
Merci! J'ai également résolu mon problème :)
rébellion
2
Incroyable. Je vous remercie.
Andrew
2
Aussi la solution m'a aidé
Sergey Andreev
2
Merci, cela a fonctionné. Si étrange. Je l'ai installé sur macbook 1, cela fonctionne, macbook 2, ne fonctionne pas, donc je dois le faire. Fou.
axelvnk
2
Je me demande pourquoi StackOverflow ne montre pas cela comme la première réponse! Clairement, c'est le bon.
Anand Sainath
58

Je ne sais pas pourquoi la question a été votée à la baisse, mais j'ai eu le même problème et en suivant le billet de blog recommandé de résoudre le problème. Une chose que je devrais ajouter est que dans mon cas, une fois que j'ai couru:

npm config set prefix /usr/local

Je confirme la npm root -gpointait /usr/local/lib/node_modules/npm, mais pour installer gulpdans /usr/local/lib/node_modules, je devais utiliser sudo:

sudo npm install gulp -g

thehme
la source
Je cherchais cette solution! MERCI! Commande: npm config set prefix /usr/localproblème résolu!
north.inhale
21

Si vous utilisez tcsh(qui est mon shell par défaut sur Mac OS X), il vous suffit probablement de taper rehashdans le shell juste après la fin de l'installation:

npm install -g gulp

suivi immédiatement par:

rehash

Sinon, s'il s'agit de votre toute première installation gulp, votre shell peut ne pas reconnaître qu'un nouvel exécutable est installé - vous devez donc soit démarrer un nouveau shell, soit taper rehashle shell actuel.

(Il s'agit essentiellement d'une opération ponctuelle pour chaque commande que vous installez globalement.)

Steve Goldberg
la source
17

Je me rends compte que c'est un vieux fil de discussion, mais pour Future-Me et la postérité, j'ai pensé que je devrais ajouter mes deux cents autour de la discussion "Running npm as sudo". Avertissement: je n'utilise pas Windows. Ces étapes n'ont été prouvées que sur des machines non Windows, à la fois virtuelles et physiques.

Vous pouvez éviter d'avoir à utiliser sudo en modifiant l'autorisation sur le répertoire par défaut de npm.


Comment: modifier les autorisations pour exécuter npm sans sudo

Étape 1: Découvrez où se trouve le répertoire par défaut de npm.

  • Pour ce faire, ouvrez votre terminal et exécutez:
    npm config get prefix

Étape 2: Continuez, en fonction de la sortie de cette commande:

  • Scénario un: le répertoire par défaut de npm est /usr/local
    Pour la plupart des utilisateurs, votre sortie montrera que le répertoire par défaut de npm est / usr / local, auquel cas vous pouvez passer à l'étape 4 pour mettre à jour les autorisations pour le répertoire.
  • Scénario deux: le répertoire par défaut de npm est /usrou /Users/YOURUSERNAME/node_modulesou /Something/Else/FishyLooking
    Si vous trouvez que le répertoire par défaut de npm n'est pas / usr / local, mais est plutôt quelque chose que vous ne pouvez pas expliquer ou semble louche, vous devriez passer à l'étape 3 pour changer le répertoire par défaut pour npm, ou vous risquez de gâcher vos autorisations à une échelle beaucoup plus grande.

Étape 3: Modifiez le répertoire par défaut de npm:

  • Il y a plusieurs façons de procéder, y compris la création d'un répertoire spécifiquement pour les installations globales, puis l'ajout de ce répertoire à votre $ PATH, mais comme / usr / local est probablement déjà dans votre chemin, je pense qu'il est plus simple de simplement changer npm répertoire par défaut à cela. Ainsi: npm config set prefix /usr/local
    • Pour plus d'informations sur les autres approches que j'ai mentionnées, consultez la documentation npm ici .

Étape 4: Mettez à jour les autorisations sur le répertoire par défaut de npm:

  • Une fois que vous avez vérifié que le répertoire par défaut de npm se trouve dans un emplacement raisonnable, vous pouvez mettre à jour les autorisations dessus à l'aide de la commande:
    sudo chown -R $(whoami) $(npm config get prefix)/{lib/node_modules,bin,share}

Vous devriez maintenant pouvoir courir npm <whatever>sans sudo. Remarque: vous devrez peut-être redémarrer votre terminal pour que ces modifications prennent effet.

sgray
la source
7

J'ai eu un problème similaire, j'ai fait les étapes suivantes et cela a fonctionné.Allez au terminal mac et exécutez les commandes,

1.npm config set prefix / usr / local

2.sudo chown -R $ (whoami) $ (npm config get prefix) / {lib / node_modules, bin, share}

Ces deux commandes définiront le chemin npm à droite et vous n'aurez plus à utiliser sudo dans npm. Ensuite, désinstallez le gulp

  1. npm désinstaller gulp

  2. Installl gulp à nouveau sans sudo, npm install gulp -g

Cela devrait fonctionner !!

Atul Kumar
la source
4

J'ai eu ce problème avec l'obtention de "commande introuvable" après l'installation, mais j'ai été installé dans / usr / local comme décrit dans la solution ci-dessus.

Mon problème semblait être causé par l'exécution de l'installation avec sudo. J'ai fait ce qui suit.

  1. Supprimer à nouveau gulp avec sudo
  2. Changer le propriétaire de / usr / local / lib / node_modules en mon utilisateur
  3. Installer à nouveau gulp sans sudo. "npm install gulp -g"
Zack Huston
la source
1
Il semble plus raisonnable que je n'ai pas besoin d'installer quoi que ce soit localement avec sudo et pourquoi devrais-je jamais avoir besoin d'utiliser sudo - pour moi, lorsque je commence à utiliser sudo, les choses se cassent lorsque vous n'exécutez pas la ligne de commande en tant que sudo - comme dans dev au jour le jour sous l'utilisateur. J'ai tendance à penser que votre méthode est beaucoup plus correcte - sudo n'est pas toujours la meilleure réponse même si elle semble corriger pour le moment.
atterri le
3

Vous devez le faire npm install --global gulp. Cela fonctionne pour moi et j'ai également eu ce problème. C'est parce que vous n'avez pas installé globalement ce package.

Sergey Andreev
la source
3

Si vous êtes sur Mac , utilisez le privilège root

sudo npm install gulp-cli --global

Pour vérifier s'il est installé, exécutez

gulp -v

Version CLI: 2.2.0 (la sortie)

Version locale: inconnue

Abinet KenoreGetachew
la source
1

Je l'ai fait fonctionner sur Win10 en utilisant une combinaison de réponses d'en haut et d'ailleurs. Publier ici pour les autres et l'avenir de moi.

J'ai suivi les instructions d'ici: https://gulpjs.com/docs/en/getting-started/quick-start mais à la dernière étape après avoir tapé gulp --version j'ai reçu le message -bash: gulp: command not found

Pour résoudre ce problème:

  1. J'ai ajouté% AppData% \ npm à ma variable d'environnement Path
  2. Fermé tous les gitbash (cmd, powershell, etc ...) et redémarré gitbash.
  3. Puis gulp - la version a fonctionné

Vous trouverez également ci-dessous les raisons pour lesquelles ne pas installer gulp globalement et comment le supprimer (je ne sais pas si cela est conseillé):

que signifie gulp- "cli"?

Comment désinstaller globalement Gulp CLI de NPM?

Tony Lisanti
la source
0

Dans mon cas , l' ajout sudo avant NPM install résolu commande engouffreur pas trouvé problème

sudo npm install

Balram Singh
la source
0

Si vous voulez laisser votre préfixe intact, exportez simplement son répertoire bin vers votre variable PATH:
export PATH=$HOME/your-path/bin:$PATH
j'ai ajouté cette ligne à mon $ HOME / .profile et je l'ai trouvée.

Définir le préfixe sur /usr/localvous permet d'utiliser sudo, donc j'aime l'avoir dans mon répertoire utilisateur. Vous pouvez vérifier votre préfixe avec npm prefix -g.

Altair
la source