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?
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.
Fügen Sie /usr/local/share/npm/bin/
zu Ihrem $PATH
hinzu
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.
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
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
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
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.
Manchmal müssen Sie npm install package_name -g
damit es funktioniert.
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.
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