web-dev-qa-db-fra.com

Comment puis-je exécuter grunt à partir d'un dossier différent de celui de mon projet racine

Existe-t-il un moyen de dire à grunt quel fichier grunt.js utiliser?

J'ai un dossier f:\a\b\tools qui contient grunt.cmd, node.exe,..., Mon application Web actuelle avec GruntFile.js et tout le node_modules local est dans f:\a\c\my_app

Exécuter grunt à partir de a\c\my_app fonctionne bien, mais essayer d'exécuter grunt à partir d'un autre dossier dit que a ne semble pas fonctionner. Je suis nouveau à grogner et il se peut que quelque chose d’évident me manque.

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

grunt-cli: l'interface de ligne de commande Grunt. (v0.1.6)

Erreur fatale: impossible de trouver un grunt local.

Si vous voyez ce message, un fichier Grunt n'a pas été trouvé ou un fichier Grunt n'a pas été installé localement dans votre projet. Pour plus d'informations sur l'installation et la configuration de grunt, reportez-vous au guide de démarrage:

http://gruntjs.com/getting-started

30
zuniga

Vous pouvez définir deux paramètres --base et --gruntfile

De grunt --help:

--base Spécifiez un autre chemin de base. Par défaut, tous les chemins de fichiers sont relatifs au fichier Grunt. (grunt.file.setBase) *

--gruntfile Spécifiez un autre fichier Gruntfile. Par défaut, grunt recherche dans les répertoires actuel ou parent le fichier Gruntfile.js ou Gruntfile.coffee le plus proche.

Donc, vous pouvez exécuter:

grunt --base c\my_app --gruntfile c\my_app\GruntFile.js mytask
57
Renan Ivo

Depuis Grunt 1.3, vous pouvez omettre --gruntfile.

Donc, au lieu de

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

tu peux juste

grunt --base c\my_app mytask (et --base peuvent être remplacés par -b)

0
jsruok

Je vous conseillerai de l'exécuter à partir de votre répertoire d'application car les modules sont installés dans nodes_modules, etc., vous devez vous déplacer dans votre répertoire d'application et exécuter grunt:

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