Comando Gulp non trovato dopo l'installazione


97

Ho installato gulp (a livello globale) e sembra che abbia funzionato perché ha eseguito questo codice:

├── 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)

Ma quando scrivo gulp, dice-bash: gulp: command not found

Qualche idea su cosa sta succedendo?


4
Per risolvere questo problema, l'ho fatto sudo install gulp -g. che ha funzionato
Mr_Green

10
Mr_Green significava: sudo npm install gulp -g
jasonleonhard

Risposte:


174

Si scopre che npm è stato installato nella directory sbagliata, quindi ho dovuto cambiare il "prefisso di configurazione npm" eseguendo questo codice:

npm config set prefix /usr/local

Quindi ho reinstallato gulp a livello globale (con il parametro -g) e ha funzionato correttamente.

Questo articolo è dove ho trovato la soluzione: http://webbb.be/blog/command-not-found-node-npm


2
Grazie! Ha risolto anche il mio problema :)
ribellione

2
Sorprendente. Grazie.
Andrew

2
Anche la soluzione mi ha aiutato
Sergey Andreev

2
Grazie, ha funzionato. Così strano. L'ho installato su macbook 1, funziona, macbook 2, non funziona, quindi devo farlo. Pazzo.
axelvnk

2
Mi chiedo perché StackOverflow non mostra questa come prima risposta! Chiaramente è quello corretto.
Anand Sainath

58

Non sono sicuro del motivo per cui la domanda è stata sottovalutata, ma ho avuto lo stesso problema e seguendo il post del blog consigliato di risolvere il problema. Una cosa che dovrei aggiungere è che nel mio caso, una volta eseguito:

npm config set prefix /usr/local

Ho confermato la npm root -gstava indicando /usr/local/lib/node_modules/npm, ma per poter installare gulpin /usr/local/lib/node_modules, ho dovuto usare sudo:

sudo npm install gulp -g


Stavo cercando questa soluzione! GRAZIE! Comando: npm config set prefix /usr/localproblema RISOLTO!
North.inhale

21

Se stai utilizzando tcsh(che è la mia shell predefinita su Mac OS X), probabilmente devi solo digitare rehashnella shell subito dopo il completamento dell'installazione:

npm install -g gulp

seguito immediatamente da:

rehash

Altrimenti, se è la prima volta che installi gulp, la tua shell potrebbe non riconoscere che è installato un nuovo eseguibile, quindi devi avviare una nuova shell o digitare rehashla shell corrente.

(Questa è fondamentalmente una cosa una tantum per ogni comando che installi a livello globale.)


17

Mi rendo conto che questo è un vecchio thread, ma per Future-Me, e per i posteri, ho pensato di dover aggiungere i miei due centesimi alla discussione "running npm as sudo". Disclaimer: non utilizzo Windows. Questi passaggi sono stati provati solo su macchine non Windows, sia virtuali che fisiche.

È possibile evitare la necessità di utilizzare sudo modificando l'autorizzazione nella directory predefinita di npm.


Procedura: modificare le autorizzazioni per eseguire npm senza sudo

Passaggio 1: scopri dove si trova la directory predefinita di npm.

  • Per fare ciò, apri il tuo terminale ed esegui:
    npm config get prefix

Passaggio 2: procedi, in base all'output di quel comando:

  • Scenario uno: la directory predefinita di npm è /usr/local
    Per la maggior parte degli utenti, il tuo output mostrerà che la directory predefinita di npm è / usr / local, nel qual caso puoi saltare al passaggio 4 per aggiornare i permessi per la directory.
  • Scenario due: la directory predefinita di npm è /usro /Users/YOURUSERNAME/node_moduleso /Something/Else/FishyLooking
    Se trovi che la directory predefinita di npm non è / usr / local, ma è invece qualcosa che non puoi spiegare o sembra strano, dovresti andare al passaggio 3 per cambiare la directory predefinita per npm, o rischi di rovinare le tue autorizzazioni su scala molto più ampia.

Passaggio 3: modifica la directory predefinita di npm:

  • Ci sono un paio di modi per farlo, inclusa la creazione di una directory specifica per installazioni globali e quindi l'aggiunta di quella directory al tuo $ PATH, ma poiché / usr / local è probabilmente già nel tuo percorso, penso che sia più semplice cambiare solo npm directory predefinita in quella. Così: npm config set prefix /usr/local
    • Per maggiori informazioni sugli altri approcci che ho citato, vedere i documenti di npm qui .

Passaggio 4: aggiorna le autorizzazioni sulla directory predefinita di npm:

  • Dopo aver verificato che la directory predefinita di npm si trova in una posizione ragionevole, puoi aggiornare le autorizzazioni su di essa utilizzando il comando:
    sudo chown -R $(whoami) $(npm config get prefix)/{lib/node_modules,bin,share}

Ora dovresti essere in grado di correre npm <whatever>senza sudo. Nota: potrebbe essere necessario riavviare il terminale affinché queste modifiche abbiano effetto.


7

Ho avuto un problema simile, ho fatto i seguenti passaggi e ha funzionato: vai al terminale Mac ed esegui i comandi,

1.npm config set prefix / usr / local

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

Questi due comandi imposteranno correttamente il percorso npm e non dovrai più usare sudo in npm. Quindi disinstalla il gulp

  1. npm disinstalla gulp

  2. Installl gulp di nuovo senza sudo, npm install gulp -g

Questo dovrebbe funzionare !!


4

Ho avuto questo problema ottenendo "comando non trovato" dopo l'installazione ma sono stato installato in / usr / local come descritto nella soluzione sopra.

Il mio problema sembrava essere causato da me che eseguivo l'installazione con sudo. Ho fatto quanto segue.

  1. Rimuovere di nuovo gulp con sudo
  2. Cambiando il proprietario di / usr / local / lib / node_modules al mio utente
  3. Installazione di gulp di nuovo senza sudo. "npm install gulp -g"

1
Sembra più sensato che non abbia bisogno di installare nulla localmente con sudo e perché dovrei mai aver bisogno di usare sudo - per me quando inizio a usare sudo allora le cose si interrompono quando non esegui la riga di comando come sudo - come in sviluppo quotidiano sotto l'utente. Tendo a pensare che la tua strada sia molto più corretta: sudo non è sempre la risposta migliore anche se per il momento sembra risolvere.
atterrato il

3

Devi farlo npm install --global gulp. Per me funziona e ho anche avuto questo problema. È perché non hai installato globalmente questo pacchetto.


3

Se sei su Mac, usa i privilegi di root

sudo npm install gulp-cli --global

Per verificare se è installato, esegui

gulp -v

Versione CLI: 2.2.0 (L'output)

Versione locale: sconosciuta


1

Ho ottenuto questo lavoro su Win10 usando una combinazione delle risposte dall'alto e altrove. Pubblicare qui per gli altri e per il futuro me.

Ho seguito le istruzioni da qui: https://gulpjs.com/docs/en/getting-started/quick-start ma nell'ultimo passaggio dopo aver digitato gulp --version ho ricevuto il messaggio -bash: gulp: comando non trovato

Per risolvere questo problema:

  1. Ho aggiunto% AppData% \ npm alla mia variabile d'ambiente Path
  2. Chiuso tutto gitbash (cmd, powershell, ecc ...) e riavviato gitbash.
  3. Poi gulp - la versione funzionò

Inoltre, ho trovato quanto segue per i motivi per cui non installare gulp a livello globale e come rimuoverlo (non sono sicuro che sia consigliabile):

cosa significa gulp- "cli"?

Come disinstallare Gulp CLI da NPM a livello globale?


0

Nel mio caso l'aggiunta di sudo prima dell'installazione di npm risolto il problema del comando gulp non trovato

sudo npm install


0

Se vuoi lasciare intatto il tuo prefisso, esporta semplicemente la sua directory bin nella tua variabile PATH:
export PATH=$HOME/your-path/bin:$PATH
ho aggiunto questa riga al mio $ HOME / .profile e l'ho trovata.

L'impostazione del prefisso a /usr/localti fa usare sudo, quindi mi piace averlo nella mia directory utente. Puoi controllare il tuo prefisso con npm prefix -g.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.