2016-09-22 85 views
1

我想新的任务使用NPM模块,但我没有任何结果:使用NPM模块registerTask

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

您的任务的问题是它是异步的。

可以注册异步咕噜任务,但你必须调用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(); 
    } 
    }); 
}); 
+0

谢谢!完美的工作 –