【问题标题】:Grunt synchronous taskGrunt 同步任务
【发布时间】:2015-01-26 21:15:48
【问题描述】:

我无法完全理解按顺序运行任务的基本 grunt 循环,我也想不通。基本上,我在循环中设置了一个 grunt.option,以下任务在其配置中使用该选项。问题是 grunt 似乎完全乱序运行,因此在以下任务运行之前,“选项”设置为循环中的最后一个值:

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。任何提示都可以按顺序运行...

【问题讨论】:

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

标签: javascript gruntjs


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2014-02-17
    • 2015-08-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-23
    • 2013-02-23
    • 1970-01-01
    相关资源
    最近更新 更多