node.js – 用api运行grunt任务,没有命令行

我想在node.js代码中创建并运行grunt任务以供测试使用。

var foo = function() {
    var grunt = require("grunt");

    var options = {"blahblah": null} // ...creating dynamic grunt options,such as concat and jshint
    grunt.initConfig(options);
    grunt.registerTask('default',[/*grunt subtasks*/]);
}

但这不行。 Grunt似乎没有执行任何任务。我几乎肯定有一些API在外部运行grunt任务没有命令行,但不知道如何做。

有什么办法吗?

解决方法

您可以。我不知道为什么任何人都需要这样做,因为目前Grunt是一个命令行工具。警告:我不建议以这种方式运行Grunt。但这里是:

var grunt = require('grunt');

// hack to avoid loading a Gruntfile
// You can skip this and just use a Gruntfile instead
grunt.task.init = function() {};

// Init config
grunt.initConfig({
  jshint: {
    all: ['index.js']
  }
});

// Register your own tasks
grunt.registerTask('mytask',function() {
  grunt.log.write('Ran my task.');
});

// Load tasks from npm
grunt.loadNpmtasks('grunt-contrib-jshint');

// Finally run the tasks,with options and a callback when we're done
grunt.tasks(['mytask','jshint'],{},function() {
  grunt.log.ok('Done running tasks.');
});

相关文章

这篇文章主要介绍“基于nodejs的ssh2怎么实现自动化部署”的...
本文小编为大家详细介绍“nodejs怎么实现目录不存在自动创建...
这篇“如何把nodejs数据传到前端”文章的知识点大部分人都不...
本文小编为大家详细介绍“nodejs如何实现定时删除文件”,内...
这篇文章主要讲解了“nodejs安装模块卡住不动怎么解决”,文...
今天小编给大家分享一下如何检测nodejs有没有安装成功的相关...