Was verursacht diesen Fehler? - "Schwerwiegender Fehler: Lokales Grunzen konnte nicht gefunden werden."

370

Ich habe zuerst die alte Version von grunt entfernt, dann die neue Version von grunt installiert und dann den folgenden Fehler erhalten:

D: \ www \ grunt-test \ grunt grunt-cli: Die grunt-Befehlszeilenschnittstelle. (v0.1.4)

Schwerwiegender Fehler: Lokales Grunzen konnte nicht gefunden werden.

Wenn diese Meldung angezeigt wird, wurde entweder keine Grunt-Datei gefunden oder Grunt wurde nicht lokal in Ihrem Projekt installiert. Weitere Informationen zum Installieren und Konfigurieren von grunt finden Sie im Handbuch Erste Schritte: http://gruntjs.com/getting-started

Liegt das daran, dass mein Systempfad keinen Hinweis auf Grunzen enthält? Oder etwas anderes? Ich habe bereits einige Male versucht, es neu zu installieren.

Ryan Yiada
quelle
6
Haben Sie global installiert? npm install grunt -g
Elclanrs
1
Haben Sie eine Gruntfile.jsan der Wurzel Ihres Projekts?
Simon Boudrias
6
@Garreh Es ist eine Weile her, aber versuchen Sie es npm install grunt --save-devvom Terminal. Dies sollte die neueste Version zu Ihrer hinzufügen package.json.
Romain
233
Ups - hatte dies mit einem neu ausgecheckten Projekt. Musste nur tun npm install!
poshaughnessy
6
nmp install - Installiert die Abhängigkeiten im lokalen Ordner node_modules.
Poorva

Antworten:

291

Ich denke, Sie haben keine grunt.jsDatei in Ihrem Projektverzeichnis. Verwenden grunt:initSie diese Option, um Optionen wie jQuery, node,commonjs. Wählen Sie aus, was Sie möchten, und fahren Sie dann fort. Das funktioniert wirklich. Weitere Informationen finden Sie hier .

Mach das:

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

Es sollte funktionieren.

Lösung für 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.)

Bearbeiten: Aktualisierte Lösung für neue Versionen:

 npm install grunt --save-dev
Anshul
quelle
2
Diese Version muss die alte (v0.3) sein. Heute bin ich nicht mehr installiert und installiere das neue Grunzen (v0.4) namens Grunt-CLI. Etwas hat sich geändert.
Ryan Yiada
29
Derzeit npm install gruntinstalliert grunt 0.3.x. Sie müssen `npm install [email protected] 'ausführen, um die für grunt-cli benötigte Version von grunt lokal zu installieren
Jack
6
Ich wünschte, die Grunt-Installationsschritte würden sich mit @ 0.4 befassen. Ich habe wirklich meine Hände gerungen, um das herauszufinden, bis ich Ihren Kommentar gefunden habe.
CNP
2
npm install grunt --save-devtat es für mich
Vinicius Pinto
6
grunt-clisollte global installiert werden, es wird jedoch erwartet, dass Sie eine lokale Installation grunt.jsin Ihrem Projekt haben. Dadurch kann jedes Projekt eine andere Version von grunt verwenden. Ich benutze normalerweise npm mit einer package.json-Datei, um grunt.js alle anderen grunt conribs usw. zu installieren
Henry
164

Installieren Sie Grunt nicht global, sondern in node_modules

Unable to find local Grunt bedeutet wahrscheinlich, dass Sie Grunt global installiert haben.

Die Grunt-CLI besteht darauf, dass Sie grunt in Ihrem lokalen Verzeichnis node_modules installieren, sodass Grunt für Ihr Projekt lokal ist.

Dies wird fehlschlagen:

npm install -g grunt

Tun Sie dies stattdessen:

npm install grunt --save-dev
überleuchtet
quelle
83

Tun

npm install

um Grunt lokal in zu installieren ./node_modules(und alles andere, was in der package.jsonDatei angegeben ist)

Klas Mellbourn
quelle
4
Ich habe das getan, weil ich wie ein Idiot vergessen habe, diesen Befehl
auszuführen,
1
Wie kommt es, dass grunt lokal installiert werden muss, da sich das Befehlszeilentool immer global befinden kann?
Mike M
1
@ MikeM manchmal hast du node_modules/.binin deinem PATH. Lokale und globale Versionen können unterschiedliche Versionen sein.
Klas Mellbourn
In meinem Fall war NetBeans schuld. Manchmal stürzt es meine Projekte ab, wenn ich es git stashin einem externen Tool mache . Hier wurden einige Module entfernt node_modulesund alles funktionierte nicht mehr (und funktionierte vorher einwandfrei). Nachdem npm installes wieder gut funktioniert.
Wirone
26

Wenn Sie bereits eine Datei package.jsonim Projekt haben und diese gruntin Abhängigkeit enthält ,

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

Anschließend können Sie npm installdas Problem beheben

Anthony Kong
quelle
5

Ich habe den Fehler gemacht, einige Pakete mit sudo und anderen ohne Berechtigungen zu installieren. Dies hat mein Problem behoben.

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

hoffe es hilft jemandem.

Misterzik
quelle
5

Es heißt, Sie haben keinen Einheimischen, gruntalso versuchen Sie:

npm install grunt

(ohne das ist -ges ein Einheimischer grunt)

Obwohl nicht direkt verwandt, stellen Sie sicher, dass Sie Gruntfile.jsin Ihrem aktuellen Ordner haben.

Tomer Ben David
quelle
4

Je nachdem, welche Version von Grunzen verwendet wird, können hier einige Probleme auftreten. Neuere Versionen von grunt geben tatsächlich an, dass Sie eine Datei mit dem Namen Gruntfile.js(anstelle der alten grunt.js) haben.

Sie sollten das grunt-cliTool global installieren lassen (dies erfolgt über npm install -g grunt-cli). Auf diese Weise können Sie gruntBefehle tatsächlich über die Befehlszeile ausführen.

Stellen Sie zweitens sicher, dass Sie grunt lokal für Ihr Projekt installiert haben. Wenn Sie sehen, dass Sie package.jsonso etwas nicht haben, "grunt": "0.4.5"sollten Sie dies npm install grunt --savein Ihrem Projektverzeichnis tun .

Nick Schaubeck
quelle
3

Ich musste die folgenden Befehle auf Ubuntu ausführen, um dieses Problem zu lösen (ich kenne Grunzen für 1 Stunde):

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

Es ist schmutzig, aber es ist die einzige Lösung, die ich gefunden habe ... :(

Max
quelle
2

Keiner der oben genannten Punkte hat bei mir funktioniert, da ich Grunzen global installiert hatte (in einigen dieser Antworten seltsamerweise empfohlen) und das alles durcheinander brachte. Folgendes hat funktioniert:

npm uninstall -g grunt
npm install

Erst jetzt war ein lokales Grunzen für mich installiert und verwendbar.

mlncn
quelle
0

Da ich neu im Grunzen und Einrichten bin, führe ich (vielleicht törichterweise) mein Grunzprojekt / meinen Grunzordner von einem Google Drive aus aus, damit ich von meinem Laptop oder meiner Workstation aus auf denselben Code / dieselben Builds zugreifen kann.

Es gibt einiges an Synchronisation der Ordner "node_modules" zurück zu Google Drive, und irgendwann schien es einen Konflikt zu geben, und der Ordner "/ node_modules / grunt" wurde in / node_modules / grunt (1) umbenannt.

Das Umbenennen durch Entfernen der (1) schien es für mich zu beheben.

LJT
quelle
Warum benutzt du kein GIT?
hmrc87
Ich wollte keine Änderungen an Versionen / Versionen nachverfolgen und habe versucht, nicht zwei separate Grunzinstallationen zu verwalten, aber das obige Szenario war ziemlich problematisch, so dass ich trotzdem zu Github gewechselt bin.
LJT
0

Nur um npm installzu installierennode_modules

Miku Ghoul
quelle
0

Ich hatte das gleiche Problem in Vagrant.

Ich habe sudo verwendet, um den zu installierenden Befehl auszuführen.

sudo npm install -g grunt-cli

Es hat bei mir funktioniert.

user1012513
quelle
0

Sie können diesen Befehl einfach ausführen:

npm install grunt --save-dev
Vinod Kumar
quelle