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