Node.js 如何从与根项目不同的文件夹运行grunt
有没有办法告诉grunt使用哪个grunt.js文件 我有一个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
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