2013-02-14 12 views
29

Gibt es eine Möglichkeit zu sagen, grunt, welche grunt.js-Datei zu verwenden?Wie führe ich Grunt aus einem anderen Ordner als mein Root-Projekt

Ich habe einen f:\a\b\tools Ordner, der mit GruntFile.js und alle ist die lokalen node_modulesgrunt.cmd, node.exe,..., meinen eigentlichen Web-App enthält in f:\a\c\my_app

Grunzen Ausgeführt von a\c\my_app funktioniert gut, aber versuchen, Grunzen aus einem anderen Ordner laufen sagen ein tut scheint nicht zu funktionieren. Ich bin neu zu grunzen und vielleicht vermisse ich etwas Offensichtliches.

f:\a>grunt --config c\GruntFile.js 

grunt-cli: The grunt command line interface. (v0.1.6)

Fatal error: Unable to find local grunt.

If you're seeing this message, either a Gruntfile wasn't found or grunt hasn't been installed locally to your project. For more information about installing and configuring grunt, please see the Getting Started guide:

http://gruntjs.com/getting-started

Antwort

54

können Sie legen zwei Parameter --base und --gruntfile

Von grunt --help:

--base einen alternativen Basispfad angeben. Standardmäßig sind alle Dateipfade relativ zur Gruntdatei. (grunt.file.setBase) *

--gruntfile Geben Sie eine alternative Gruntdatei an. Standardmäßig sucht grunt im aktuellen oder übergeordneten Verzeichnis nach der nächsten Gruntfile.js- oder Gruntfile.coffee-Datei.

So können Sie ausführen:

grunt --base c\my_app --gruntfile c\my_app\GruntFile.js mytask 
+5

FWIW, mit '-Base' funktionierte nicht für mich, aber mit' --gruntfile' tat. –

+1

Wie kann dies als 'Standard' eingestellt werden? Wir haben eine generische Grunt-Datei, die in allen unseren Anwendungen verwendet werden kann, so dass wir sie in einem Ordner (Submodul) haben wollen, aber alles nur durch den Aufruf von grunt ausführen wollen, anstatt jedes Mal --gruntfile eingeben zu müssen. – WORMSS

+0

Dies scheint nicht mit der Überwachungsdatei zu funktionieren. initial run ist in Ordnung, aber wenn eine Uhr einen Lauf auslöst, ist der Pfad doppelt und Fehler sind aus: 'gruntfile kann nicht gefunden werden c \ my_app \ c \ my_app \ gruntfile.js" ' – NDM

0

Ich werde beraten Sie es von Ihrem App-Verzeichnis laufen, weil die Module in nodes_modules installiert sind, usw. Sie Ihre App-Verzeichnis und Grunzen laufen bewegen müssen:

cd f: 
cd a\c\my_app 
grunt {yourTasks} 
+0

durch den '--base' Parameter angeben können Sie es loswerden. siehe @ Renans Antwort. –

Verwandte Themen