我想在新任务上使用npm模块,但我没有结果:
grunt.registerTask('done', function () {
var prepend = require('prepend');
var file = 'app.bundleES6.js',
string = '// My string';
prepend(file, string, function(error) {
if (error)
console.error(error.message);
else
console.log('Yeah');
});
});
当我运行grunt done
时,我没有看到console.log,只是:
Running "done" task
Done, without errors.
你知道如何在Grunt registerTask上使用npm模块吗?
谢谢!
答案 0 :(得分:0)
您的任务的问题在于它是异步的。
您可以注册异步Grunt任务,但是必须调用this.async()
来获取完成回调,并且必须在任务完成时调用回调(如果任务失败则传递false
)。
像这样:
grunt.registerTask('done', function () {
var callback = this.async();
var prepend = require('prepend');
var file = 'app.bundleES6.js',
string = '// My string';
prepend(file, string, function(error) {
if (error) {
console.error(error.message);
callback(false);
}
else {
console.log('Yeah');
callback();
}
});
});