Node.js 如何从与根项目不同的文件夹运行grunt

Node.js 如何从与根项目不同的文件夹运行grunt,node.js,gruntjs,Node.js,Gruntjs,有没有办法告诉grunt使用哪个grunt.js文件 我有一个f:\a\b\tools文件夹,其中包含grunt.cmd、node.exe、…, 我的带有grunfile.js和所有本地node\u模块的实际web应用程序位于f:\a\c\my\u应用程序中 从a\c\my\u app运行grunt可以正常工作,但如果尝试从其他文件夹运行grunt,则表明a似乎不起作用。我是刚接触咕噜的人,可能我错过了一些明显的东西 f:\a>grunt --config c\GruntFile.js

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

我有一个
f:\a\b\tools
文件夹,其中包含
grunt.cmd、node.exe、…
, 我的带有
grunfile.js
和所有本地
node\u模块的实际web应用程序位于
f:\a\c\my\u应用程序中

a\c\my\u app
运行grunt可以正常工作,但如果尝试从其他文件夹运行grunt,则表明a似乎不起作用。我是刚接触咕噜的人,可能我错过了一些明显的东西

f:\a>grunt --config c\GruntFile.js
grunt cli:grunt命令行界面。(v0.1.6)

致命错误:找不到本地grunt

如果您看到此消息,可能是找不到GrunFile,或者grunt未在您的项目本地安装。有关安装和配置grunt的更多信息,请参阅《入门指南》:


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

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

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

grunt--help

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

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

因此,您可以执行:

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

由于grunt 1.3,您可以省略
--gruntfile

因此,与其

grunt--base c\my\u app--gruntfile c\my\u app\gruntfile.js mytask

你可以


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

通过指定
--base
参数,可以将其删除。请参阅@Renan's answer.FWIW,使用
--base
对我不起作用,但使用
--grunfile
对我起作用。如何将其设置为“默认”?我们有一个通用的Grunt文件,可以在我们所有的应用程序中使用,所以我们希望它在一个文件夹(子模块)中,但仍然希望通过调用Grunt来运行所有东西,而不是每次都必须键入--GrunFile。这似乎不适用于监视文件。初始运行是正常的,但当手表触发运行时,路径会加倍并出错:
找不到Grunfile“c\my\u app\c\my\u app\grunfile.js”
仅更新grunt cli版本>=1.0.0,命令现在是:
grunt--base=c\my\u app--Grunfile=c\my\u app\grunfile.js mytask