0
看來如果想在「乾淨」的機器上咕嚕一聲,我們必須先編寫一個運行「npm install」的外部腳本。可以安裝自己的插件嗎?
有沒有辦法讓grunt先運行「npm install」來在devDependencies中安裝它的插件?
看來如果想在「乾淨」的機器上咕嚕一聲,我們必須先編寫一個運行「npm install」的外部腳本。可以安裝自己的插件嗎?
有沒有辦法讓grunt先運行「npm install」來在devDependencies中安裝它的插件?
Grunt只是一個節點模塊,就像任何其他模塊一樣,它使用npm進行依賴管理。據我所知,npm本身不能通過模塊以編程方式訪問。
但是你的問題可以用咕嚕聲解決。 Grunt有一個名爲grunt.task.exists的界面。您可以使用它來檢查任務是否已加載,如果不是,則運行grunt-shell的任務包含npm install
。其中一個實現這個方式是動態創建別名:
function safeTasks(tasks) {
exists: for (var task in config) {
if (!grunt.task.exists(task)) {
tasks.unshift('shell:dependencies');
break exists;
}
}
return tasks;
}
grunt.registerTask('default', safeTasks(['one', 'another']));
哪裏config
是傳遞給grunt.initConfig()
的對象。
你爲什麼不直接自己運行'grunt install'? – jgillich
@ jgillich會做什麼? –
哦,對不起,錯字,我的意思是'npm install'。 – jgillich