it-swarm.com.de

Knotenpaket (Grunt) installiert, jedoch nicht verfügbar

Ich versuche, eine github jquery-ui-Bibliothek zu erstellen mit grunt, aber nachdem ich npm install ausgeführt habe, kann ich den Befehl immer noch nicht gemäß der readme-Datei ausführen. Es gibt nur No command 'grunt' found:

[email protected]:~/Documents/projects/ad2/lib/jquery-ui$ grunt build
No command 'grunt' found, did you mean:
 Command 'grun' from package 'grun' (universe)
grunt: command not found
[email protected]:~/Documents/projects/ad2/lib/jquery-ui$ npm ls
[email protected] /home/james/Documents/projects/ad2/lib/jquery-ui
├─┬ [email protected] 
│ ├── [email protected] 
│ ├── [email protected] 
│ ├─┬ [email protected] 
│ │ ├── [email protected] 
│ │ ├── [email protected] 
│ │ └── [email protected] 
│ ├── [email protected] 
│ ├─┬ [email protected] 
│ │ └─┬ [email protected] 
│ │   └── [email protected] 
│ ├─┬ [email protected] 
│ │ ├── [email protected] 
│ │ └── [email protected] 
│ ├── [email protected] 
│ ├─┬ [email protected] 
│ │ ├── [email protected] 
│ │ └─┬ [email protected] 
│ │   └── [email protected] 
│ ├─┬ [email protected] 
│ │ ├── [email protected] 
│ │ └─┬ [email protected] 
│ │   ├── [email protected] 
│ │   ├── [email protected] 
│ │   └── [email protected] 
│ ├─┬ [email protected] 
│ │ └── [email protected] 
│ ├─┬ [email protected] 
│ │ ├── [email protected] 
│ │ └─┬ [email protected] 
│ │   ├── [email protected] 
│ │   ├─┬ [email protected] 
│ │   │ └── [email protected] 
│ │   └── [email protected] 
│ ├── [email protected] 
│ ├─┬ [email protected] 
│ │ └── [email protected] 
│ ├── [email protected] 
│ ├── [email protected] 
│ └── [email protected] 
├── [email protected] 
├─┬ [email protected] 
│ ├── [email protected] 
│ └── [email protected] 
├── [email protected] 
├── [email protected] 
├─┬ [email protected] 
│ └── [email protected] 
└─┬ [email protected] 
  └── [email protected] 

Ich bin verwirrt, was fehlt mir bitte?

181
AJP

Die Befehlszeilentools sind nicht in der neuesten Version von Grunt enthalten (zum Zeitpunkt des Schreibens 0.4), sondern müssen separat installiert werden.

Dies ist eine gute Idee, da dies bedeutet, dass Sie verschiedene Versionen von Grunt in verschiedenen Projekten ausführen können, aber trotzdem den Befehl Nice concise grunt verwenden können, um sie auszuführen.

Installieren Sie also zuerst die grunt cli-Tools global:

npm install -g grunt-cli

(oder möglicherweise Sudo npm install -g grunt-cli).

Sie können feststellen, dass das funktioniert, indem Sie grunt --version eingeben.

Jetzt können Sie die aktuelle Version von Grunt local in Ihrem Projekt installieren. Also vom Standort Ihres Projekts ...

npm install grunt --save-dev

Der save-dev-Schalter ist nicht unbedingt erforderlich, ist aber eine gute Idee, da er in seinem package.json devDependencies-Abschnitt "Grunt" als reines Entwicklungsmodul kennzeichnen wird.

400
Tom P

Fügen Sie /usr/local/share/npm/bin/ zu Ihrem $PATH hinzu

26
Sam Figueroa

Wenn Sie das Grunt-Paket installiert haben, indem Sie npm install -g grunt ausgeführt haben und es immer noch No command 'grunt' found oder grunt: command not found heißt, ist dies ein schneller und schmutziger Weg, um dies zu erreichen, indem Sie die Knoten-Binärdateien manuell mit Ihrem $ PATH verknüpfen.

Unter MacOSX/Linux können Sie diese Zeile in Ihre ~/.bash_profile- oder ~/.bashrc-Datei einfügen.

PATH=$PATH:/usr/local/Cellar/node/HEAD/bin # Add NPM binaries

Sie sollten /usr/local/Cellar/node/HEAD/bin wahrscheinlich durch den Pfad ersetzen, unter dem Ihre Knoten-Binärdateien gefunden wurden.

Wenn dies schnell und schmutzig für mich ist, liegt es daran, dass alles funktionieren sollte, ohne dies zu tun, aber aus einem unbekannten Grund scheint ein Link gebrochen zu sein. Da niemand auf IRC mir sagen konnte, warum dies geschah, fand ich meinen eigenen Weg, damit es funktioniert.

PS: Dies sollte Ihnen dabei helfen, Grunzarbeiten zu erreichen, diese Antwort ist nicht auf Jquery-ui bezogen.

Update 02/2013: Sie sollten einen Blick auf die Antwort von @ tom-p werfen die besser erklärt, was los ist. Tom gibt uns die wirkliche Lösung, anstatt Ihre bashrc-Datei zu hacken: beide sollten funktionieren, aber Sie sollten versuchen, zuerst grunt-cli zu installieren.

23
rayfranco

In meinem Fall muss ich die Datei/usr/local/bin/grunt in Zeile 1 ändern (machen Sie das nicht):

 #!/usr/bin/env node //remove this line
 #!/usr/bin/env nodejs // and put this line to run with nodejs

Bearbeitet:

Um Probleme zu vermeiden, habe ich eine Verknüpfung mit dem Namen "node" erstellt, da viele andere Programme noch den Befehl "node" verwenden.

 Sudo ln -s /usr/bin/nodejs /usr/sbin/node
12
Edgard Leal

Unter WIN7 musste ich den Pfad zum npm-Ordner (der die schwer fassbare "grunt" -Datei enthält) der Windows PATH-Umgebungsvariablen manuell hinzufügen.
In meinem Fall war das C:\Users\mhaagsma\AppData\Roaming\npm

10
Marvin

Es gibt eine weitere Möglichkeit, Grunt unter Windows auszuführen, ohne etwas global hinzuzufügen. Dies ist der Fall, wenn Sie mit% PATH% nichts zu tun haben.

wenn du grunt und grunt-cli installiert hast (ohne -g switch) ..__ entweder durch:

npm install grunt-cli
npm install [email protected]

Oder indem Sie das in Ihrer packages.json-Datei haben:

"devDependencies": {
    "grunt-cli": "^1.2.0",
    "grunt": "^0.4.5",

Sie können grunt von Ihrer lokalen Installation aus anrufen:

node node_modules\grunt-cli\bin\grunt --version

Dies ist eine Lösung für alle, die aus bestimmten Gründen nicht mit PATH spielen wollen oder können, oder sich ständig mit etwas anderem auseinandersetzen müssen, beispielsweise mit einem Build-Agenten.

Edit: Hinzugefügte Versionen, da das grunt-cli mit grunt> 0.3 funktioniert

10
tomajar

Der richtige Weg, Grunt zu installieren, ist den folgenden Befehl auszuführen:

npm install grunt -g

(Wenn Sie eine EACCESS-Fehlermeldung erhalten, fügen Sie "Sudo" vor dem obigen Befehl ein.)

Mit -g wird das Paket global von npm installiert, sodass Sie es jederzeit in Ihrer aktuellen Maschine verwenden können.

Unter Windows scheint es ein Teil des Rätsels zu sein, wo npm die Datei Grunt.cmd installiert. Auf meiner Linux-Box musste ich lediglich Sudo npm install -g grunt-cli ausführen. Auf meinem Windows-8-Laptop wurde Grunt in das Verzeichnis ".npm-global" gestellt:% USER_HOME%\.npm-global und ich musste das dem Pfad hinzufügen.

Also unter Windows waren meine Schritte:

  • npm install -g grunt-cli 

  • finden Sie heraus, wo der Teufel grunt.cmd war (ich glaube, für einige ist es in% USER_HOME%\App_Data\Roaming)

  • Der Speicherort wurde meiner Umgebungsvariable Path hinzugefügt. Öffnet eine neue cmd-Eingabeaufforderung und der Befehl zum Grunzen lief einwandfrei.

0
MattC

Manchmal müssen Sie npm install package_name -g damit es funktioniert. 

0
lowerkey

Eine andere Lösung ist, den Ubuntu-Bundler in meinem Fall zu entfernen, den ich verwendet habe:

Sudo apt-get remove Ruby-bundler 

Das hat bei mir funktioniert.

0
Israel Morales

Hallo, ich hatte dieses Problem auf dem Mac, und was ich tat, war

global installiert und mit globalem Pfad vorangestellt

Sudo npm install grunt -g --prefix=/usr/local

jetzt $ which grunt

sollte /usr/local/bin/grunt ausgeben

Prost

0
Theva