简体   繁体   中英

How do I run grunt from a different folder than my root project

Is there a way to tell grunt which grunt.js file to use?

I have an f:\\a\\b\\tools folder that contains grunt.cmd, node.exe,... , my actual web app with GruntFile.js and all the local node_modules is in f:\\a\\c\\my_app

Running grunt from a\\c\\my_app works fine but trying to run grunt from some other folder say a does not seem to work. I am new to grunt and may be I am missing something obvious.

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

You can set two parameters --base and --gruntfile

From grunt --help :

--base Specify an alternate base path. By default, all file paths are relative to the Gruntfile. (grunt.file.setBase) *

--gruntfile Specify an alternate Gruntfile. By default, grunt looks in the current or parent directories for the nearest Gruntfile.js or Gruntfile.coffee file.

So, you can execute:

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

Since grunt 1.3 you can omit --gruntfile .

So, instead of

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

you can just

grunt --base c\\my_app mytask (and --base can be replaced with -b )

I'll advise you to run it from your app directory because the modules are installed into nodes_modules, etc. you must move to your app directory and run grunt:

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM