Gruntjs 从一个GrunFile到另一个GrunFile运行grunt任务

Gruntjs 从一个GrunFile到另一个GrunFile运行grunt任务,gruntjs,Gruntjs,我的项目根目录中有一个Gruntfile。我还通过Bower将jQuery安装在app/components/jQuery目录中 作为GrunFile的一部分,我想在jQuery GrunFile上运行一些命令来构建库的自定义版本 我怎样才能从我的Gruntfile中得到他们的Gruntfile呢?不知道这是否有效,但你可以试试。jQuery Gruntfile通过“module.exports”导出。这意味着,您可以在代码中要求并使用它 var jQueryGrunt = require('p

我的项目根目录中有一个Gruntfile。我还通过Bower将jQuery安装在app/components/jQuery目录中

作为GrunFile的一部分,我想在jQuery GrunFile上运行一些命令来构建库的自定义版本


我怎样才能从我的Gruntfile中得到他们的Gruntfile呢?

不知道这是否有效,但你可以试试。jQuery Gruntfile通过“module.exports”导出。这意味着,您可以在代码中要求并使用它

var jQueryGrunt = require('path-to-jquery-gruntfile');
jQueryGrunt.task.run(['your-task-you-want-to-run']);

如果可以的话,我会很感兴趣的…

您可以在您想要的文件夹中创建一个简单的任务:

grunt.registerTask('run-grunt', function () {
    var done = this.async();
    grunt.util.spawn({
        grunt: true,
        args: [''],
        opts: {
            cwd: 'app/components/jquery'
        }
    }, function (err, result, code) {
        done();
    });
});

如果您想在@Sindre的答案的基础上获得控制台输出,那么您所要做的就是将result.stdout记录在控制台日志中

grunt.registerTask('run-grunt', function() {
    var cb = this.async();
    grunt.util.spawn({
        grunt: true,
        args: ['clean', 'copy:fonts'],
        opts: {
            cwd: 'bower_components/bootstrap'
        }
    }, function(error, result, code) {
        console.log(result.stdout);
        cb();
    });
});

根据@Sindre和@Stephen的回答,我们还可以“实时”获得控制台输出,而无需缓冲:

grunt.registerTask('run-grunt', function() {
  var cb = this.async();
  var child = grunt.util.spawn({
      grunt: true,
      args: ['clean', 'copy:fonts'],
      opts: {
          cwd: 'bower_components/bootstrap'
      }
  }, function(error, result, code) {
      cb();
  });

  child.stdout.pipe(process.stdout);
  child.stderr.pipe(process.stderr);
});

这几乎奏效了。。。。这需要什么来显示任务的输出。假设我有一个任务karma:unit,它使用
watch:true
运行我的单元测试。我希望能够运行它并在屏幕上看到输出。如果你想看到它流,你必须启动自己的子进程并响应数据事件-否则只需将结果输出到控制台
console.log(result.stdout)工作得很好,当然输出是缓冲的。在Visual Studio任务运行器资源管理器中也是如此。现在,我可以通过项目根目录中的GrunFile(TaskRunner Explorer需要)从引导GrunFile运行任务