javascript - Grunt registerTask() 未运行列表中的任务

标签 javascript node.js gruntjs rendr

我添加了以下内容registerTask调用此 Gruntfile.js

grunt.task.registerTask('runDebug', 'Run the app with debug flag', function() {
  var done = this.async();
  grunt.util.spawn({
      cmd: 'node',
      args: ['--debug', './node_modules/nodemon/nodemon.js', 'index.js'],
      opts: {
        stdio: 'inherit'
      }
    }, function (error, result, code) {
      if (error) {
          grunt.log.write (result);
          grunt.fail.fatal(error);
      }
      done();
    });
  grunt.log.writeln ('node started');
  grunt.util.spawn({
      cmd: 'node-inspector',
      args: ['&'],
      opts: {
          //cwd: current working directory
      }
    },
    function (error, result, code) {
      if (error) {
        grunt.log.write (result);
        grunt.fail.fatal(error);
      }
      done();
    });
  grunt.log.writeln ('inspector started');
});

grunt.task.registerTask('debug', ['runDebug', 'compile', 'watch']);

新的debug任务与现有的server任务类似。但是,grunt server 命令运行 compilewatchrunNode 任务,而 grunt debug 命令仅运行 runDebug 任务。

我在这里缺少什么?为什么 compilewatch 任务不使用 grunt debug 命令运行。

最佳答案

您的代码多次调用 this.async() 返回的 done() 函数。这可能会让 Grunt 感到困惑。我建议您调用一个名为 spawned() 的函数,而不是直接在回调中调用 done() 。该函数可能类似于:

var expected_spawns = 2;
function spawned() {
    if (!--expected_spawns)
        done();

    if (expected_spawns < 0)
        throw new Error("too many spawns!") // Or some of Grunt's fail functions.
}

这样 done() 将被调用一次。

关于javascript - Grunt registerTask() 未运行列表中的任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21761102/

相关文章:

javascript - react native : How to make modular components using local image and data assets?

javascript - Google Maps JavaScript API3marker.setMap(null) 不隐藏标记

javascript - 尝试检查 div 标签中的文本并附加结果

javascript - vuejs 从数组中删除项目

node.js - Nodejs Assets 管理

javascript - Uglify JS - 压缩未使用的变量

node.js - 检查该值是否是模型 Sequelize 中的电话号码

node.js - Sequelize : extra column in query

gruntjs - ctrl-c [SIGINT] 在使用 grunt-shell 时不与 Grunt 一起工作

javascript - 如何将 Grunt 生成的文件添加到我的 Github 存储库?