Javascript Grunt同步任务

Javascript Grunt同步任务,javascript,gruntjs,Javascript,Gruntjs,我不能把我的头绕在一个基本的grunt循环上,按顺序运行任务,我也弄不明白。基本上,我在循环中设置一个grunt.option,下面的任务在配置中使用该选项。问题是grunt似乎完全无序地运行,因此在运行以下任务之前,将“option”设置为循环中的最后一个值: var skins = ['daylight','twilight']; grunt.registerTask('skins', function(){ grunt.util.recurse(skins, function(val)

我不能把我的头绕在一个基本的grunt循环上,按顺序运行任务,我也弄不明白。基本上,我在循环中设置一个grunt.option,下面的任务在配置中使用该选项。问题是grunt似乎完全无序地运行,因此在运行以下任务之前,将“option”设置为循环中的最后一个值:

var skins = ['daylight','twilight'];
grunt.registerTask('skins', function(){
  grunt.util.recurse(skins, function(val){
    grunt.option('skin', val); // This runs twice first
    grunt.task.run(['replace:styles','sass:dist']); // ... before this
  })
});

基本上,该选项设置为第一个任务运行前的最后一个数组val。要按顺序运行此任务,请提供任何提示…

grunt.task.run
在当前任务完成后立即将任务排队运行。这意味着
'replace:styles'
'sass:dist'
将在
'skins'
任务完成后运行,并且在此阶段
'skin'
选项设置为列表中的最后一个值。

感谢@drorb指出了这不起作用的原因。由于我对grunt/node缺乏一定的经验,我最终在terminal中用一个简单的bash脚本解决了这个问题,它只处理一些grunt任务,顺序是:
alias skins='grunt sassy--skin=daylight&&grunt sassy--skin=twilight'