2016-09-22 84 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

謝謝!完美的工作 –