Co powoduje ten błąd - „Błąd krytyczny: nie można znaleźć lokalnego pomruku”

370

Najpierw usunąłem starą wersję chrząknięcia, następnie zainstalowałem nową wersję chrząknięcia, a następnie dostałem ten błąd:

D: \ www \ grunt-test \ grunt grunt-cli: interfejs wiersza poleceń. (v0.1.4)

Błąd krytyczny: nie można znaleźć lokalnego pomruku.

Jeśli widzisz ten komunikat, oznacza to, że albo nie znaleziono Gruntfile, albo lokalnie nie został zainstalowany lokalnie w twoim projekcie. Aby uzyskać więcej informacji na temat instalowania i konfigurowania gruntu, zobacz przewodnik Pierwsze kroki: http://gruntjs.com/getting-started

Czy to dlatego, że na mojej ścieżce systemowej nie ma odniesienia do chrząkania? Albo coś innego? Próbowałem go ponownie zainstalować kilka razy.

Ryan Yiada
źródło
6
Czy zainstalowałeś się globalnie? npm install grunt -g
elclanrs 18.12.12
1
czy masz Gruntfile.jsu podstaw swojego projektu?
Simon Boudrias,
6
@Garreh Minęło trochę czasu, ale spróbuj npm install grunt --save-devz terminalu. To powinno dodać najnowszą wersję do twojego package.json.
Romain
233
Ups - miałem to z nowo sprawdzonym projektem. Po prostu trzeba to zrobić npm install!
poshaughnessy
6
instalacja nmp - instaluje zależności w lokalnym folderze moduły_węzła.
poorva

Odpowiedzi:

291

Myślę, że nie masz grunt.jspliku w katalogu projektu. Użyj grunt:init, która daje takie opcje, jak jQuery, node,commonjs. Wybierz, co chcesz, a następnie kontynuuj. To naprawdę działa. Aby uzyskać więcej informacji można znaleźć to .

Zrób to:

 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.).

To powinno działać.

Rozwiązanie dla wersji 1.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.)

Edycja: zaktualizowane rozwiązanie dla nowych wersji:

 npm install grunt --save-dev
Anszul
źródło
2
Ta wersja musi być stara (v0.3). Dziś jestem niezamówiony i zainstaluj nowy grunt (v0.4) o nazwie Grunt-CLI. Coś się zmieniło ..
Ryan Yiada
29
Obecnie npm install gruntinstaluje grunt 0.3.x. Musisz zrobić `npm install [email protected] 'i zainstaluj lokalnie wersję gruntu potrzebną dla grunt-cli
Jack
6
Chciałbym, aby kroki instalacji Grunt dotyczyły @ @ 0.4. Naprawdę załamałam ręce, próbując to rozgryźć, dopóki nie znalazłam twojego komentarza.
cnp
2
npm install grunt --save-devZrobiłem to dla mnie
Vinicius Pinto
6
grunt-clipowinien być zainstalowany globalnie, ale oczekuje się, że będziesz mieć lokalną instalację grunt.jsw swoim projekcie. Dzięki temu w każdym projekcie może być używana inna wersja pomruku. Zazwyczaj używam npm z plikiem package.json do instalowania grunt.js wszystkich innych conribs itp.
Henry
164

Zainstaluj Grunt w module node_modules zamiast globalnie

Unable to find local Grunt prawdopodobnie oznacza to, że zainstalowałeś Grunt na całym świecie.

Interfejs Grunt CLI nalega, aby zainstalować grunt w katalogu lokalnym node_modules, więc Grunt jest lokalny dla twojego projektu.

To się nie powiedzie:

npm install -g grunt

Zrób to zamiast tego:

npm install grunt --save-dev
superluminarny
źródło
83

Zrobić

npm install

zainstalować Grunt lokalnie w ./node_modules(i wszystko inne określone w package.jsonpliku)

Klas Mellbourn
źródło
4
Zrobiłem to, bo jestem głupcem, zapomniałem uruchomić to polecenie po ściągnięciu repozytorium nowego projektu do mac .....: /
neoswf
1
Dlaczego chrząknięcie musi być zainstalowane lokalnie, skoro narzędzie wiersza polecenia zawsze może być zlokalizowane globalnie?
Mike M,
1
@MikeM czasami masz node_modules/.binw swoim PATH. Lokalne i globalne mogą być także różne wersje.
Klas Mellbourn,
W moim przypadku była to wina NetBeans. Czasami powoduje awarię moich projektów, gdy robię to git stashw narzędziu zewnętrznym, tutaj usuwałem niektóre moduły node_modulesi wszystko przestało działać (i wcześniej działało dobrze). Po npm installtym znowu działa dobrze.
Wirone,
26

Jeśli masz już plik package.jsonw projekcie i zawiera on gruntzależność,

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

Następnie możesz uruchomić, npm installaby rozwiązać problem

Anthony Kong
źródło
5

Popełniłem błąd, instalując niektóre pakiety za pomocą sudo, a inne bez uprawnień, to naprawiło mój problem.

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

mam nadzieję, że to komuś pomoże.

misterzik
źródło
5

Mówi, że nie masz lokalnego, gruntwięc spróbuj:

npm install grunt

(bez -glokalny grunt)

Chociaż nie jest to bezpośrednio powiązane, upewnij się, że masz go Gruntfile.jsw bieżącym folderze.

Tomer Ben David
źródło
4

Może tu być kilka problemów w zależności od używanej wersji chrząka. Nowsze wersje gruntu określają, że masz plik o nazwie Gruntfile.js(zamiast starej grunt.js).

Należy mieć grunt-clinarzędzie być instalowany globalnie (odbywa się to za pośrednictwem npm install -g grunt-cli). To pozwala na uruchamianie gruntpoleceń z wiersza poleceń.

Po drugie, upewnij się, że zainstalowałeś lokalnie dla swojego projektu. Jeśli widzisz, package.jsonże nie ma czegoś takiego "grunt": "0.4.5", powinieneś to zrobić npm install grunt --savew katalogu projektu.

Nick Schaubeck
źródło
3

Musiałem wykonać następujące polecenia na Ubuntu, aby rozwiązać ten problem (znam chrząknięcie przez 1 godzinę):

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

Jest brudny, ale to jedyne rozwiązanie, jakie znalazłem ... :(

Max
źródło
2

Żadne z powyższych nie działało dla mnie, ponieważ mam zainstalowany globalnie (dziwnie zalecane w kilku z tych odpowiedzi) i to wszystko popsuło. Oto, co zadziałało:

npm uninstall -g grunt
npm install

Dopiero teraz został zainstalowany i użyteczny lokalny pomruk.

mlncn
źródło
0

Będąc nowy w chrząkaniu i konfigurowaniu go, uruchamiam (być może głupio) mój projekt / folder chrząstki z Dysku Google, aby uzyskać dostęp do tego samego kodu / kompilacji z mojego laptopa lub stacji roboczej.

Trwa synchronizacja folderów nodes_modules z powrotem na Dysku Google i w pewnym momencie wydawało się, że wystąpił konflikt, a folder / nodes_modules / grunt został przemianowany na / nodes_modules / grunt (1)

Zmiana nazwy z powrotem przez usunięcie (1) wydawała się naprawić.

LJT
źródło
Dlaczego nie korzystasz z GIT?
hmrc87
Nie chciałem śledzić zmian / wersji i starałem się nie utrzymywać dwóch osobnych instalacji, ale powyższy scenariusz był dość problematyczny, więc i tak przeniosłem się na github.
LJT
0

Wystarczy npm installzainstalowaćnode_modules

Miku Ghoul
źródło
0

Miałem ten sam problem w Vagrant.

Użyłem sudo, aby uruchomić polecenie instalacji.

sudo npm install -g grunt-cli

To zadziałało dla mnie.

użytkownik1012513
źródło
0

Możesz po prostu uruchomić to polecenie:

npm install grunt --save-dev
Vinod Kumar
źródło