Upgrade grunt from 0.3 to 0.4

Grunt是什麼?之前有稍微提過,就不再贅述了,總之是個Frontend的好朋友,請一定要找時間認識它一下。不過好東西也是會有爆炸的時候,因為它是新東西(你看它還在0.3、0.4就應該知道了),雖然玩新東西很不錯,不過有一點一定要牢記在心,就是它還年輕,心情還不定(講人話可以嗎 XD),就是Interface隨時有可能大改

grunt 最近grunt的開發社群準備要從0.3升到0.4,當然你只要下個npm update就上去了,不過接下來你可能會想哭...0rz

Upgrading from 0.3 to 0.4 強烈建議稍微看一下這篇公告 老實說,雖然有點痛,不過改變之後感覺更乾淨,對於之後的使用以及Plugin(Task)的開發應該都會更方便。

在新版中,原有的grunt被拆成三個部分:gruntgrunt-cligrunt-init,以往cli的部份就是grunt-cli,grunt是安裝 在專案目錄之下,然後grunt-init則是用來建立一開始的骨架,讓開發者能夠更快開始進行開發。稍微花點時間把手邊的專案升 上去,順便記一下遇到的狀況,其實比想像中簡單許多 :p

  • 環境的改變稍微注意一下,nodejs的版本( >= 0.8.x),設定檔也改了(grunt.[js|coffee] -> Gruntfile.[js|coffee])
  • API有一些改變,如果有自己開發的模組,注意一 下有沒有動到(像grunt.utils -> grunt.util(這 XD
  • registerTask改了,從原本的string -> Array(參考文件Alias task changes)

至於真正需要執行的任務,倒是變得非常簡單,因為許多開發者的貢獻,grunt本身就已經支援許多功能,到gruntjs的頁面去找一下就可以看到,目前只要是grunt-contrib-*的專案,都已經支援0.4版本了,要使用也很簡單:

  1. npm install grunt-contrib-{project}
  2. 加到package.json的devDependencies
  3. 別忘了安裝grunt,一樣放在devDependencies
  4. 在Gruntfile裡面,加入對應的grunt.loadNpmTasks('grunt-contrib-{project}')

就是這麼簡單 :p

其實原本我也不是用grunt,而是bbb,為了支援RequireJS的關係,不過其實現在grunt本身的模組就已經支援了,所以乾脆換回來用本家(其實bbb也是用grunt做出來的),然後最近很火熱的Yeoman,也是基於grunt建構出來的,真的是Frontend的好幫手阿!!

PS: 其實我有點想試試把grunt用來跑backend task,不知道有沒有強者有試過 XDD

Ferrari Lee

Read more posts by this author.

Subscribe to Ferrari != Ferrari

Get the latest posts delivered right to your inbox.

or subscribe via RSS with Feedly!