Nessuna installazione gulp locale trovata anche dopo l'installazione di npm install -g gulp


88

Ho provato a installare gulp by

npm install -g gulp

L'output sembra essere qualcosa del genere. (ho saltato alcuni log)

npm http 304 https://registry.npmjs.org/string_decoder
npm http 304 https://registry.npmjs.org/lodash._htmlescapes
/usr/bin/gulp -> /usr/lib/node_modules/gulp/bin/gulp.js
gulp@3.6.2 /usr/lib/node_modules/gulp
├── tildify@0.2.0
├── pretty-hrtime@0.2.1
├── deprecated@0.0.1
├── archy@0.0.2
├── semver@2.2.1
├── chalk@0.4.0 (has-color@0.1.7, ansi-styles@1.0.0, strip-ansi@0.1.1)
├── orchestrator@0.3.3 (sequencify@0.0.7)
├── liftoff@0.9.8 (extend@1.2.1, minimist@0.0.8, resolve@0.6.3, findup-sync@0.1.3)
├── vinyl-fs@0.1.4 (graceful-fs@2.0.3, map-stream@0.1.0, mkdirp@0.3.5, vinyl@0.2.3, glob-stream@3.1.9, glob-watcher@0.0.6)
└── gulp-util@2.2.14 (lodash._reinterpolate@2.4.1, dateformat@1.0.7-1.2.3, minimist@0.0.8, vinyl@0.2.3, multipipe@0.0.2, through2@0.4.1, lodash.template@2.4.1)

Nello script sopra posso vedere una riga / usr / bin / gulp -> /usr/lib/node_modules/gulp/bin/gulp.js che immagino stia facendo un simulink nella cartella bin. Quindi dovrei prendere gulp a livello globale ma ottengo questo errore.

No local gulp install found in /var/www/ksapp

Qualche idea sul perché ricevo questo errore.

Grazie

Risposte:


103

Come sottolineato nel documento , dovresti installarlo globalmente (l'hai fatto) e aggiungerlo al tuo progetto dev deps (localmente):

npm install gulp --save-dev

1
C'è la possibilità che un Gulp non copi i file del nodo nella cartella locale del progetto? Avendo Gulp installato a livello globale, questo comando ne fa una copia locale a quanto ho capito.
Vladislav Rastrusny

Il punto è che l'installazione locale garantisce che la build del progetto NON si interrompa anche se le installazioni di sistema vengono aggiornate (l'installazione globale di gulp è lì solo per fornire un comando binario nel percorso). Questa è la stessa situazione per il grugnito.
Mangled Deutz

12
Anch'io odio le copie complete dei moduli del nodo in ogni cartella del progetto, quindi uso regolarmentenpm link gulp --save-dev
PA.

1
Bello, ma non vedo che npm link gulp --save-devrispetti il --save-devparametro.
Derek Greer

2
@PA, per ribadire ancora i commenti sulle altre risposte, npm link gulpè una cattiva idea.
sfarbota

35

Ho affrontato lo stesso problema. È stato risolto creando un collegamento

npm link gulp

8
Come affermato in un altro commento, questa è una cattiva idea. I sistemi di compilazione come gulp o grunt sono progettati in modo che un progetto specifico possa dipendere da una versione specifica della build specifica (quindi, verrà comunque compilato indipendentemente dallo stato o dalle versioni installate del sistema globale). Cercare di collegare insieme la versione globale e locale di gulp è spararsi ai piedi ...
Mangled Deutz

@MangledDeutz Non mi interessa legare gulp a questo progetto specifico. Voglio solo usarlo come un piccolo strumento da riga di comando per automatizzare alcune attività di compilazione. Il mio gulpfile non farà parte del repository git, e infatti, se clono questo repository su un altro computer, potrei decidere di non usare nemmeno gulp per automatizzare queste attività, potrei usare uno strumento diverso. Voglio fingere che node e npm non esistano, e gulp è solo un piccolo programma in / usr / bin che cerca un gulpfile.js in CWD e funziona magicamente. Se è tutto ciò che voglio, questa risposta non è una cosa ragionevole da fare?
Jack M

@JackM non è ancora una cosa ragionevole, perché a seconda della versione di gulp installata a livello di sistema, potrebbe funzionare o meno con quel gulpfile.js (e "magicamente" si interrompe senza motivo) ...
Mangled Deutz

@MangledDeutz Ma questo è vero per qualsiasi programma a riga di comando che accetta un file come input.
Jack M

Yaaas! QUESTO! Lascia che lo sviluppatore decida quando la versione globale è appropriata o no !!
Peter Kionga-Kamau

-2

Controlla la directory /home/username/.npm: forse i gruppi / proprietario dei file è root. Cambia in nome utente:

chown -R username.username /home/username/.npm

-2

Recentemente mi sono imbattuto nel messaggio di errore "Local gulp not found". Sono stato in grado di superarlo creando un collegamento simbolico dalla directory globale node_modules alla directory del progetto locale in cui si trova il mio gulpfile.js.


7
Stai quindi vanificando lo scopo di un sistema di compilazione disponibile localmente che NON si interrompe quando aggiorni il tuo sistema di base. Questa è certamente una cattiva idea e va contro le intenzioni degli autori ...
Mangled Deutz
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.