我希望能夠訪問grunt生態系統中的許多可用插件和任務,以使我的生活更輕鬆,但我希望控制每個任務的運行時間和方式。最重要的是,我想要一種以編程方式運行grunt任務的方式,而不是在Gruntfile
的文件夾中從命令行運行grunt
。所以我開始在grunt-cli
和grunt
之間徘徊一段「進路」。以編程方式控制Grunt.js
從GruntJS源代碼:
// Expose the task interface. I've never called this manually, and have no idea
// how it will work. But it might.
grunt.tasks = function(tasks, options, done) {
...
正如你可以看到,奧曼先生提醒我們介紹一下界面...我的問題是,有沒有人得到這個工作?
我的實驗,到目前爲止,還使我相信以編程方式控制咕嚕最好的辦法就是用一個子進程模仿命令行調用:
$ npm install grunt-cli //notice no -g flag
// From runner.js
var exec =require('child_process').exec
exec('node_modules/.bin/grunt-cli tasks to run', {
cwd: 'path/to/directory/with/a/gruntfile'
}, function() { /* do stuff here */ });
這似乎髒,所以我想只需編寫我自己的任務管理器,爲暴露任務提供一個界面。不過,儘管Allman先生的警告,但如果有人在grunt.tasks()
成功,我不想重複工作。
如果您舉例說明您正在嘗試做什麼,這可能會更容易回答。 – Mathletics
謝謝......我會添加一些僞代碼 – srquinn