Comando Gulp não encontrado após instalação

97

Instalei o gulp (globalmente) e parece que funcionou porque executou 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)

Mas quando eu digito gulp, diz-bash: gulp: command not found

Alguma idéia do que está acontecendo?

iluvpinkerton
fonte
4
Para resolver isso, eu fiz sudo install gulp -g. que funcionou
Mr_Green
10
Mr_Green significava: sudo npm install gulp -g
jasonleonhard

Respostas:

174

Acontece que o npm foi instalado no diretório errado, então tive que alterar o “prefixo de configuração do npm” executando este código:

npm config set prefix /usr/local

Então eu reinstalei o gulp globalmente (com o parâmetro -g) e funcionou corretamente.

Este artigo é onde encontrei a solução: http://webbb.be/blog/command-not-found-node-npm

iluvpinkerton
fonte
2
Obrigado! Resolveu meu problema também :)
rebelião de
2
Surpreendente. Obrigado.
Andrew,
2
A solução também me ajudou
Sergey Andreev,
2
Obrigado, isso funcionou. Tão estranho. Eu instalei no macbook 1, ele funciona, macbook 2, não funciona, então eu tenho que fazer isso. Louco.
axelvnk
2
Eu me pergunto por que StackOverflow não mostra isso como a primeira resposta! Claramente, é o correto.
Anand Sainath de
58

Não sei por que a questão foi rejeitada, mas tive o mesmo problema e, seguindo a postagem do blog recomendado, resolva o problema. Uma coisa que devo acrescentar é que, no meu caso, uma vez que executei:

npm config set prefix /usr/local

I confirmou a npm root -gestava apontando para /usr/local/lib/node_modules/npm, mas para instalar gulpem /usr/local/lib/node_modules, eu tive que usar sudo:

sudo npm install gulp -g

thehme
fonte
Eu estava procurando por essa solução! OBRIGADO! Comando: npm config set prefix /usr/localProblema RESOLVIDO!
north.inhale
21

Se você estiver usando tcsh(que é meu shell padrão no Mac OS X), provavelmente só precisará digitar rehashno shell logo após a conclusão da instalação:

npm install -g gulp

seguido imediatamente por:

rehash

Caso contrário, se esta é a primeira vez que você está instalando gulp, seu shell pode não reconhecer que há um novo executável instalado - então você precisa iniciar um novo shell ou digitar rehasho shell atual.

(Isso é basicamente uma coisa única para cada comando que você instala globalmente.)

Steve Goldberg
fonte
17

Sei que este é um tópico antigo, mas para Future-Me e posteridade, achei que deveria adicionar meus dois centavos em torno da discussão "executando npm como sudo". Isenção de responsabilidade: eu não uso o Windows. Essas etapas só foram comprovadas em máquinas não Windows, virtuais e físicas.

Você pode evitar a necessidade de usar sudo alterando a permissão para o diretório padrão do npm.


Como: alterar as permissões para executar o npm sem sudo

Etapa 1: Descubra onde está o diretório padrão do npm.

  • Para fazer isso, abra seu terminal e execute:
    npm config get prefix

Etapa 2: Prossiga, com base na saída desse comando:

  • Cenário um: o diretório padrão do npm é /usr/local
    Para a maioria dos usuários, sua saída mostrará que o diretório padrão do npm é / usr / local, caso em que você pode pular para a etapa 4 para atualizar as permissões para o diretório.
  • Cenário dois: o diretório padrão do npm é /usrou /Users/YOURUSERNAME/node_modulesou /Something/Else/FishyLooking
    Se você achar que o diretório padrão do npm não é / usr / local, mas é algo que você não pode explicar ou parece duvidoso, você deve ir para a etapa 3 para alterar o diretório padrão para npm, ou você corre o risco de bagunçar suas permissões em uma escala muito maior.

Etapa 3: alterar o diretório padrão do npm:

  • Existem algumas maneiras de fazer isso, incluindo a criação de um diretório especificamente para instalações globais e, em seguida, adicionar esse diretório ao seu $ PATH, mas como / usr / local provavelmente já está em seu caminho, acho que é mais simples apenas alterar o npm's diretório padrão para isso. Igual a: npm config set prefix /usr/local
    • Para obter mais informações sobre as outras abordagens que mencionei, consulte os documentos do npm aqui .

Etapa 4: atualize as permissões no diretório padrão do npm:

  • Depois de verificar se o diretório padrão do npm está em um local adequado, você pode atualizar as permissões nele usando o comando:
    sudo chown -R $(whoami) $(npm config get prefix)/{lib/node_modules,bin,share}

Agora você deve conseguir correr npm <whatever>sem sudo. Nota: Você pode precisar reiniciar seu terminal para que essas alterações tenham efeito.

cinza
fonte
7

Eu tive um problema semelhante, fiz as seguintes etapas e funcionou. Vá para o terminal mac e execute os comandos,

1.npm config set prefix / usr / local

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

Esses dois comandos definirão o caminho npm certo e você não precisará mais usar sudo no npm. Em seguida, desinstale o gulp

  1. npm desinstalar gulp

  2. Installl gulp novamente sem sudo, npm install gulp -g

Isso deve funcionar !!

Atul Kumar
fonte
4

Tive o problema de obter "comando não encontrado" após a instalação, mas fui instalado em / usr / local conforme descrito na solução acima.

Meu problema parecia ser causado por eu executar a instalação com o sudo. Eu fiz o seguinte.

  1. Removendo gulp novamente com sudo
  2. Alterando o proprietário de / usr / local / lib / node_modules para meu usuário
  3. Instalando o gulp novamente sem sudo. "npm install gulp -g"
Zack Huston
fonte
1
Parece mais sensato que eu não preciso instalar nada localmente com o sudo e por que deveria usar o sudo - para mim, quando eu começo a usar o sudo, as coisas quebram quando você não executa a linha de comando como sudo - como em dia a dia dev sob usuário. Eu tendo a pensar que sua maneira é muito mais correta - sudo nem sempre é a melhor resposta, embora pareça corrigir no momento.
desembarcou em
3

Você precisa fazer isso npm install --global gulp. Funciona para mim e também tive esse problema. É porque você não instalou globalmente este pacote.

Sergey Andreev
fonte
3

Se você estiver no Mac, execute o uso do privilégio de root

sudo npm install gulp-cli --global

Para verificar se está instalado, execute

gulp -v

Versão CLI: 2.2.0 (a saída)

Versão local: Desconhecida

Abinet KenoreGetachew
fonte
1

Eu fiz isso funcionar no Win10 usando uma combinação das respostas de cima e de outros lugares. Postando aqui para outras pessoas e para mim no futuro.

Segui as instruções daqui: https://gulpjs.com/docs/en/getting-started/quick-start, mas na última etapa após digitar gulp --version recebi a mensagem -bash: gulp: comando não encontrado

Para consertar isso:

  1. Eu adicionei% AppData% \ npm à minha variável de ambiente Path
  2. Fechou todo o gitbash (cmd, powershell, etc ...) e reiniciou o gitbash.
  3. Então gulp --version funcionou

Além disso, encontrei abaixo os motivos pelos quais não instalar o gulp globalmente e como removê-lo (não tenho certeza se isso é aconselhável):

O que significa gulp- "cli" significa?

Como desinstalar o Gulp CLI do NPM globalmente?

Tony Lisanti
fonte
0

No meu caso, adicionar sudo antes do npm install resolveu o problema do comando gulp

sudo npm install

Balram Singh
fonte
0

Se você quiser deixar seu prefixo intacto, apenas exporte seu bin dir para sua variável PATH:
export PATH=$HOME/your-path/bin:$PATH
Eu adicionei esta linha ao meu $ HOME / .profile e a localizei.

Definir o prefixo como /usr/localfaz com que você use sudo, então gosto de tê-lo no meu diretório de usuário. Você pode verificar seu prefixo com npm prefix -g.

Altair
fonte