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.


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

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 grunt@0.4 '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

83

Zrobić

npm install

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


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


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.


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.


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.


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 ... :(


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.


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


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

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.


Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.