O que está causando esse erro - "Erro fatal: não é possível encontrar o grunhido local"


370

Removai a versão antiga do grunhido primeiro, depois instalei a nova versão do grunhido e recebi o seguinte erro:

D: \ www \ grunt-test \ grunt grunt-cli: a interface da linha de comando do grunt. (v0.1.4)

Erro fatal: não foi possível encontrar o grunhido local.

Se você estiver vendo esta mensagem, um Gruntfile não foi encontrado ou o grunt não foi instalado localmente no seu projeto. Para obter mais informações sobre a instalação e configuração do grunt, consulte o guia de introdução: http://gruntjs.com/getting-started

Isso ocorre porque não há uma referência ao grunhido no caminho do sistema? Ou alguma outra coisa? Já tentei reinstalá-lo algumas vezes.


6
Você instalou globalmente? npm install grunt -g
Elclanrs

11
você tem um Gruntfile.jsna raiz do seu projeto?
Simon Boudrias

6
@Garreh Já faz um tempo, mas tente npm install grunt --save-devno terminal. Isso deve adicionar a versão mais recente ao seu package.json.
Romain

233
Ops - tive isso com um projeto recém-finalizado. Só precisava fazer npm install!
poshaughnessy

6
nmp install - Instala as dependências na pasta local node_modules.
Poorva

Respostas:


291

Eu acho que você não tem um grunt.jsarquivo no diretório do projeto. Use grunt:init, que oferece opções como jQuery, node,commonjs. Selecione o que deseja e prossiga. Isso realmente funciona. Para mais informações, você pode visitar isso .

Faça isso:

 1. npm install -g grunt
 2. grunt:init  ( you will get following options ):
      jquery: A jQuery plugin
      node: A Node module
      commonjs: A CommonJS module
      gruntplugin: A Grunt plugin
      gruntfile: A Gruntfile (grunt.js)
 3 .grunt init:jquery (if you want to create a jQuery related project.).

Deveria funcionar.

Solução para v1.4:

1. npm install -g grunt-cli
2. npm init
   fill all details and it will create a package.json file.
3. npm install grunt (for grunt dependencies.)

Edit: Solução atualizada para novas versões:

 npm install grunt --save-dev

2
Esta versão deve ser a versão antiga (v0.3). Hoje não estou instalada e instale o novo grunhido (v0.4) chamado Grunt-CLI. Alguma coisa mudou ..
Ryan Yiada

29
Atualmente, npm install gruntinstala o grunt 0.3.x. Você precisará fazer o `npm install grunt@0.4 'para instalar localmente a versão do grunt necessária para o grunt-cli
Jack

6
Desejo que as etapas de instalação do Grunt abordem o @ 0.4. Estava realmente torcendo minhas mãos tentando descobrir isso até encontrar o seu comentário.
cnp 07/02

2
npm install grunt --save-devfiz por mim
Vinicius Pinto

6
grunt-clideve ser instalado globalmente, mas espera que você tenha uma instalação local grunt.jsno seu projeto. Isso permite que cada projeto use uma versão diferente do grunt. Normalmente, uso o npm com um arquivo package.json para instalar o grunt.js, todos os outros grunt conribs etc.
Henry

164

Instale o Grunt nos node_modules em vez de globalmente

Unable to find local Grunt provavelmente significa que você instalou o Grunt globalmente.

A CLI do Grunt insiste em instalar o grunt no diretório local node_modules, portanto, o Grunt é local no seu projeto.

Isso irá falhar:

npm install -g grunt

Faça isso:

npm install grunt --save-dev

83

Faz

npm install

instalar Grunt localmente ./node_modules(e tudo o mais especificado no package.jsonarquivo)


4
Eu fiz essa causa como um tolo eu esqueci de executar este comando depois de puxar repo do novo projeto fresco para mac .....: /
neoswf

11
Por que o grunhido precisa ser instalado localmente, pois a ferramenta de linha de comando sempre pode ser localizada globalmente?
Mike M

11
@MikeM às vezes você tem node_modules/.binno seu PATH. Além disso, local e global podem ter versões diferentes.
Klas Mellbourn

No meu caso, foi culpa do NetBeans. Às vezes, ele trava meus projetos quando o faço git stashna ferramenta externa, aqui removemos alguns módulos node_modulese tudo parou de funcionar (e estava funcionando bem antes). Depois npm installque funciona bem novamente.
Wirone 7/10

26

Se você já possui um arquivo package.jsonno projeto e ele contém gruntdependências,

  "devDependencies": {
    "grunt": "~0.4.0",

Em seguida, você pode executar npm installpara resolver o problema


5

Cometi o erro de instalar alguns pacotes usando o sudo e outros sem privilégios, isso corrigiu o meu problema.

sudo chown -R $(whoami) $HOME/.npm

espero que ajude alguém.


5

Ele diz que você não tem um local, gruntentão tente:

npm install grunt

(sem o -glocal grunt)

Embora não esteja diretamente relacionado, verifique se você está Gruntfile.jsna sua pasta atual.


4

Pode haver alguns problemas aqui, dependendo de qual versão do grunt está sendo usada. As versões mais recentes do grunt realmente especificam que você tem um arquivo chamado Gruntfile.js(em vez do antigogrunt.js ).

Você deve ter a grunt-cliferramenta instalada globalmente (isso é feito via npm install -g grunt-cli). Isso permite que você realmente execute gruntcomandos na linha de comando.

Em segundo lugar, verifique se você instalou o grunt localmente no seu projeto. Se você vê package.jsonque não tem algo parecido "grunt": "0.4.5", faça npm install grunt --saveno diretório do projeto.


3

Eu tive que executar os seguintes comandos no ubuntu para resolver esse problema (eu sei grunhir por 1 hora):

sudo npm install -g grunt
sudo npm install -g grunt-cli

cd /usr/local/bin
# current symlink points to ../lib/node_modules/grunt/bin/grunt*
sudo rm /usr/local/bin/grunt
sudo ln -s ../lib/node_modules/grunt-cli/bin/grunt* grunt

Está sujo, mas é a única solução que encontrei ... :(


2

Nenhuma das opções acima funcionou para mim porque eu tinha o grunhido instalado globalmente (recomendado em várias dessas respostas, estranhamente) e isso estava atrapalhando tudo. Aqui está o que funcionou:

npm uninstall -g grunt
npm install

Só agora um grunhido local foi instalado e utilizável para mim.


0

Sendo novo em relação ao grunhido e configurando-o, estou executando (talvez de maneira tola) o meu projeto / pasta grunhido em um Google Drive para que eu possa acessar o mesmo código / compilação no meu laptop ou estação de trabalho.

Há uma boa sincronização das pastas nodes_modules de volta ao Google Drive e parecia haver um conflito em algum momento, e a pasta / nodes_modules / grunt foi renomeada para / nodes_modules / grunt (1)

Renomear de volta removendo o (1) pareceu corrigi-lo para mim.


Por que você não usa o GIT?
hmrc87

Eu não estava querendo acompanhar as alterações / versões e estava tentando não manter duas instalações separadas, mas o cenário acima era bastante problemático, então mudei para o github de qualquer maneira.
LJT


0

Eu tive o mesmo problema no Vagrant.

Eu usei o sudo para executar o comando para instalar.

sudo npm install -g grunt-cli

Funcionou para mim.


0

Você pode simplesmente executar este comando:

npm install grunt --save-dev
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.