El comando Gulp no se encuentra después de la instalación

97

Instalé gulp (globalmente) y parece que funcionó porque ejecutó este código:

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

Pero cuando escribo gulpdice-bash: gulp: command not found

¿Tienes idea de lo que está pasando?

iluvpinkerton
fuente
4
Para solucionar esto, lo hice sudo install gulp -g. eso funcionó
Mr_Green
10
Mr_Green significa: sudo npm install gulp -g
jasonleonhard

Respuestas:

174

Resulta que npm se instaló en el directorio incorrecto, así que tuve que cambiar el "prefijo de configuración de npm" ejecutando este código:

npm config set prefix /usr/local

Luego reinstalé gulp globalmente (con el parámetro -g) y funcionó correctamente.

Este artículo es donde encontré la solución: http://webbb.be/blog/command-not-found-node-npm

iluvpinkerton
fuente
2
¡Gracias! También resolvió mi problema :)
rebelión
2
Asombroso. Gracias.
Andrew
2
También la solución me ayudó
Sergey Andreev
2
Gracias, esto funcionó. Tan raro. Lo instalé en macbook 1, funciona, macbook 2, no funciona, así que tengo que hacer esto. Loco.
axelvnk
2
¡Me pregunto por qué StackOverflow no muestra esto como la primera respuesta! Claramente es el correcto.
Anand Sainath
58

No estoy seguro de por qué se rechazó la pregunta, pero tuve el mismo problema y, siguiendo la publicación del blog, recomendé resolver el problema. Una cosa que debo agregar es que en mi caso, una vez que ejecuté:

npm config set prefix /usr/local

Me confirmó la npm root -gestaba señalando /usr/local/lib/node_modules/npm, pero con el fin de instalar gulpen /usr/local/lib/node_modules, tuve que usar sudo:

sudo npm install gulp -g

thehme
fuente
¡Estaba buscando esta solución! ¡GRACIAS! Comando: npm config set prefix /usr/local¡Problema RESUELTO!
North.inhale
21

Si está usando tcsh(que es mi shell predeterminado en Mac OS X), probablemente solo necesite escribir rehashen el shell justo después de que se complete la instalación:

npm install -g gulp

seguido inmediatamente por:

rehash

De lo contrario, si es la primera vez que lo instala gulp, es posible que su shell no reconozca que hay un nuevo ejecutable instalado, por lo que debe iniciar un nuevo shell o escribir rehashel shell actual.

(Esto es básicamente algo que se hace una sola vez para cada comando que instala globalmente).

Steve Goldberg
fuente
17

Me doy cuenta de que este es un hilo antiguo, pero para Future-Me y la posteridad, pensé que debería agregar mis dos centavos a la discusión de "ejecutar npm como sudo". Descargo de responsabilidad: no uso Windows. Estos pasos solo se han probado en máquinas sin Windows, tanto virtuales como físicas.

Puede evitar la necesidad de usar sudo cambiando el permiso al directorio predeterminado de npm.


Cómo: cambiar los permisos para ejecutar npm sin sudo

Paso 1: averigüe dónde está el directorio predeterminado de npm.

  • Para hacer esto, abra su terminal y ejecute:
    npm config get prefix

Paso 2: Continúe, según el resultado de ese comando:

  • Escenario uno: el directorio predeterminado de npm es /usr/local
    Para la mayoría de los usuarios, su resultado mostrará que el directorio predeterminado de npm es / usr / local, en cuyo caso puede saltar al paso 4 para actualizar los permisos del directorio.
  • Escenario dos: el directorio predeterminado de npm es /usro /Users/YOURUSERNAME/node_moduleso /Something/Else/FishyLooking
    Si encuentra que el directorio predeterminado de npm no es / usr / local, sino que es algo que no puede explicar o parece sospechoso, debe ir al paso 3 para cambiar el directorio predeterminado por npm, o corre el riesgo de estropear sus permisos a una escala mucho mayor.

Paso 3: cambie el directorio predeterminado de npm:

  • Hay un par de formas de hacerlo, incluida la creación de un directorio específicamente para instalaciones globales y luego agregar ese directorio a su $ PATH, pero dado que / usr / local probablemente ya esté en su ruta, creo que es más simple simplemente cambiar npm directorio predeterminado a eso. Al igual que: npm config set prefix /usr/local
    • Para obtener más información sobre los otros enfoques que mencioné, consulte los documentos de npm aquí .

Paso 4: actualice los permisos en el directorio predeterminado de npm:

  • Una vez que haya verificado que el directorio predeterminado de npm está en una ubicación sensible, puede actualizar los permisos usando el comando:
    sudo chown -R $(whoami) $(npm config get prefix)/{lib/node_modules,bin,share}

Ahora debería poder correr npm <whatever>sin sudo. Nota: Es posible que deba reiniciar su terminal para que estos cambios surtan efecto.

sgray
fuente
7

Tuve un problema similar, hice los siguientes pasos y funcionó. Ir a la terminal mac y ejecutar los comandos,

1.npm config establecer prefijo / usr / local

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

Estos dos comandos establecerán la ruta npm correctamente y ya no tendrá que usar sudo en npm. A continuación, desinstale el trago

  1. npm desinstalar trago

  2. Installl gulp de nuevo sin sudo, npm install gulp -g

¡¡Esto debería funcionar!!

Atul Kumar
fuente
4

Tuve este problema al obtener "comando no encontrado" después de la instalación, pero estaba instalado en / usr / local como se describe en la solución anterior.

Mi problema parecía deberse a que ejecuté la instalación con sudo. Hice lo siguiente.

  1. Eliminando gulp nuevamente con sudo
  2. Cambiar el propietario de / usr / local / lib / node_modules a mi usuario
  3. Instalando gulp nuevamente sin sudo. "npm install gulp -g"
Zack Huston
fuente
1
Parece más sensato que no necesito instalar nada localmente con sudo y por qué debería necesitar usar sudo; para mí, cuando comienzo a usar sudo, las cosas se rompen cuando no ejecutas la línea de comando como sudo, como en día a día dev bajo usuario. Tiendo a pensar que su camino es mucho más correcto: sudo no siempre es la mejor respuesta, aunque parece arreglarse por el momento.
aterrizó el
3

Necesitas hacer esto npm install --global gulp. Funciona para mí y también tuve este problema. Es porque no instaló globalmente este paquete.

Sergey Andreev
fuente
3

Si está en Mac , utilice el privilegio de root

sudo npm install gulp-cli --global

Para comprobar si está instalado, ejecute

gulp -v

Versión CLI: 2.2.0 (La salida)

Versión local: Desconocido

Abinet KenoreGetachew
fuente
1

Conseguí que esto funcionara en Win10 usando una combinación de las respuestas de arriba y de otros lugares. Publicando aquí para otros y para mi futuro.

Seguí las instrucciones desde aquí: https://gulpjs.com/docs/en/getting-started/quick-start pero en el último paso después de escribir gulp --version recibí el mensaje -bash: gulp: command not found

Para arreglar esto:

  1. Agregué% AppData% \ npm a mi variable de entorno Path
  2. Cerró todos los gitbash (cmd, powershell, etc.) y reinició gitbash.
  3. Entonces gulp --version funcionó

Además, encontré lo siguiente por razones por las que no instalar gulp globalmente y cómo eliminarlo (aunque no estoy seguro de si esto es aconsejable):

¿Qué significa gulp- "cli"?

¿Cómo desinstalar Gulp CLI de NPM a nivel mundial?

Tony Lisanti
fuente
0

En mi caso, agregando sudo antes de npm install resuelto el problema del comando gulp no encontrado

sudo npm install

Balram Singh
fuente
0

Si desea dejar su prefijo intacto, simplemente exporte su directorio bin a su variable PATH:
export PATH=$HOME/your-path/bin:$PATH
agregué esta línea a mi $ HOME / .profile y la obtuve.

Establecer el prefijo en /usr/localte hace usar sudo, así que me gusta tenerlo en mi directorio de usuario. Puede comprobar su prefijo con npm prefix -g.

Altair
fuente