2013-12-17 88 views
4

我正在編寫一個grunt插件,這將有助於我經常使用的構建過程。我通常最終做的是將我的GruntFile從項目複製/粘貼到項目中,但我認爲將它放入插件可能會更有用。我用於此構建過程的任務通常是繁重的任務,例如jshint,copy,cssmin,lessuglify等等。我想如果我能創建一個只需要一些配置並運行所有這些任務的插件,我就可以清理掉我的文件Gruntfile.js如何在grunt插件中運行其他註冊的grunt任務?

我目前的設置通常是這樣的:

grunt.initConfig({ 
    jshint: {/* ... */}, 
    copy: {/* ... */}, 
    less: {/* ... */}, 
    cssmin: {/* ... */}, 
    uglify: {/* ... */} 
}); 

    // Load and Register tasks... 

,但我想,以減少initConfig到這樣的事情:

grunt.initConfig({ 
    build: { 
    dev: { 
     paths: { 
     public: 'public', 
     source: 'source', 
     bower: 'bower_components' 
     }, 
     options: { 
     pretty: true, 
     minify: false 
     } 
    } 
    } 
}); 

這是不是可以從內完成咕嚕插件?

編輯: 我發現了類似於我正在尋找的東西,但它似乎並沒有那麼優雅,特別是所有需要手動設置的配置,但也許值得。

How can I run a grunt task from within a grunt task?

回答

4

我能得到的東西與建議對您在第一次編輯後有鏈接的其他問題的解決方案工作。重點在於它仍然缺少任務的加載,因爲它們的用例不是來自插件內部。

我結束了創建一個新公共管理模塊包裝我的解決方案,你可能會想看一看:

https://www.npmjs.org/package/extend-grunt-plugin