从Visual Studio post build事件命令行运行Grunt

Ree*_*g78 15 visual-studio-2010 post-build-event visual-studio-2012 gruntjs

我试图在Visual Studio 2010和Visual Studio 2012中都这样做.如果我的Gruntfile.js文件位于我的项目的根目录中,我可以从post build事件命令行运行"grunt"命令,它运行时没有问题.

grunt or grunt.cmd
Run Code Online (Sandbox Code Playgroud)

但如果它在子目录中

$(ProjectDir)Public\grunt or $(ProjectDir)Public\grunt.cmd
Run Code Online (Sandbox Code Playgroud)

它给了我这个错误

The command "c:\web\Public\grunt.cmd" exited with code 9009.
Run Code Online (Sandbox Code Playgroud)

我一直在研究这个,但我找不到任何帮助.我确实在grunt文档中发现我需要使用"grunt.cmd"而不是仅仅调用"grunt",但这对我没什么帮助.

Mik*_*ugh 13

发生了什么事情是你为grunt指定一个确切的路径,它实际上不在$(ProjectDir)Public \中.当您在命令提示符下的该目录中并键入grunt时,它会执行,因为您已将路径环境变量设置为包含grunt所在的目录.

幸运的是,VS中的post build命令就像一个命令窗口,所以你可以把它放在你的post build命令中:

CD $(ProjectDir)Public\
grunt
Run Code Online (Sandbox Code Playgroud)

这应该工作(假设定义了默认的grunt任务).