关于node.js:如何从不同于我的根项目的文件夹运行grunt

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

有没有办法告诉grunt使用哪个grunt.js文件?

我有一个f:\a\b\tools文件夹,其中包含grunt.cmd, node.exe,...,我实际使用的GruntFile.js和所有本地node_modules的web应用程序都在f:\a\c\my_app中。

a\c\my_app运行grunt是可以的,但是从其他文件夹运行grunt时说a似乎不起作用。我是新来的咕噜声,可能是我错过了一些明显的东西。

1
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/入门


可以设置两个参数:--base--gruntfile

来自grunt --help

--base指定备用基路径。默认情况下,所有文件路径都是相对于gruntfile的。(grunt.file.setbase)*

--gruntfile指定一个备用的gruntfile。默认情况下,grunt在当前或父目录中查找最近的grunt file.js或gruntfile.coffee文件。

因此,您可以执行:

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


既然咕噜1.3,你可以省略--gruntfile

所以,而不是

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

你可以

grunt --base c\my_app mytask(和--base可替换为-b)


我建议您从应用程序目录运行它,因为模块安装在节点模块等中。您必须移动到应用程序目录并运行grunt:

1
2
3
cd f:
cd  a\c\my_app
grunt {yourTasks}