No se encontró ninguna instalación local de gulp incluso después de instalar npm install -g gulp

88

Traté de instalar gulp por

npm install -g gulp

La salida parece ser algo como esto. (me he saltado algunos registros)

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)

En el script anterior, puedo ver una línea / usr / bin / gulp -> /usr/lib/node_modules/gulp/bin/gulp.js que supongo que está haciendo un enlace simultáneo en la carpeta bin. Entonces debería estar obteniendo trago a nivel mundial, pero obtengo este error.

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

Alguna idea de por qué recibo este error.

Gracias

harikrish
fuente

Respuestas:

103

Como se señala en el documento , debe instalarlo globalmente (lo hizo) y agregarlo a los departamentos de desarrollo de su proyecto (localmente):

npm install gulp --save-dev
Deutz destrozado
fuente
1
¿Existe la posibilidad de que Gulp no copie archivos de nodo en la carpeta local del proyecto? Habiendo Gulp instalado globalmente, este comando hace una copia local, según tengo entendido.
Vladislav Rastrusny
El punto es que la instalación local garantiza que la compilación de su proyecto NO se romperá incluso si se actualizan las instalaciones de su sistema (la instalación global de gulp solo está ahí para proporcionar un comando binario en la ruta). Esta es la misma situación para gruñido.
Mangled Deutz
12
Yo también odio las copias completas de los módulos de nodo en cada carpeta de proyecto, así que utilizo regularmentenpm link gulp --save-dev
PA.
1
Bien, pero no veo que npm link gulp --save-devrespete el --save-devparámetro.
Derek Greer
2
@PA, para reiterar nuevamente los comentarios sobre las otras respuestas, npm link gulpes una mala idea.
sfarbota
35

Me enfrenté al mismo problema. Lo resolví creando un enlace

npm link gulp
piscript
fuente
8
Como se dijo en otro comentario, esta es una mala idea. Los sistemas de compilación como gulp o gruñido están diseñados de manera que un proyecto específico puede depender de una versión específica de la compilación específica (por lo tanto, aún se compilará sin importar el estado o las versiones instaladas de su sistema global). Tratar de vincular la versión global y local de gulp es dispararse a ti mismo en el pie ...
Mangled Deutz
@MangledDeutz No estoy interesado en vincular gulp a este proyecto específico. Solo quiero usarlo como una pequeña herramienta de línea de comandos para automatizar algunas tareas de compilación. Mi gulpfile no será parte del repositorio de git y, de hecho, si clono este repositorio en otra computadora, podría decidir ni siquiera usar gulp para automatizar estas tareas, podría usar una herramienta diferente. Quiero fingir que node y npm no existen, y gulp es solo un pequeño programa en / usr / bin que busca un gulpfile.js en el CWD y funciona mágicamente. Si eso es todo lo que quiero, ¿esta respuesta no es algo razonable?
Jack M
@JackM todavía no es algo razonable, porque dependiendo de qué versión de gulp esté instalada en todo el sistema, puede o no funcionar con ese gulpfile.js (y se rompe "mágicamente" sin razón alguna) ...
Mangled Deutz
@MangledDeutz Pero eso es cierto para cualquier programa de línea de comandos que acepte un archivo como entrada.
Jack M
¡Yaaas! ¡ESTA! ¡Deje que el desarrollador decida cuándo la versión global es apropiada o no!
Peter Konga-Kamau
-2

Verifique el directorio /home/username/.npm: tal vez grupos / propietario de archivos sea root. Cambiar a nombre de usuario:

chown -R username.username /home/username/.npm
István Pató
fuente
-2

Recientemente me encontré con el mensaje de error "Trago local no encontrado". Pude superarlo creando un enlace simbólico desde el directorio global node_modules al directorio del proyecto local donde se encuentra mi gulpfile.js.

usuario3791139
fuente
7
Entonces está frustrando el propósito de un sistema de compilación disponible localmente que NO se rompe cuando actualiza su sistema base. Esta es ciertamente una mala idea y va en contra de las intenciones de los autores ...
Mangled Deutz