2014-07-21 73 views
0

看來如果想在「乾淨」的機器上咕嚕一聲,我們必須先編寫一個運行「npm install」的外部腳本。可以安裝自己的插件嗎?

有沒有辦法讓grunt先運行「npm install」來在devDependencies中安裝它的插件?

+0

你爲什麼不直接自己運行'grunt install'? – jgillich

+0

@ jgillich會做什麼? –

+0

哦,對不起,錯字,我的意思是'npm install'。 – jgillich

回答

1

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()的對象。

相關問題