我想在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.'); });