CoffeeScrpt node module compile and continous integration in Travis
最近開始一直使用 coffeeScript 作為主要編輯程式,當我們在使用 Travis 的時候,會遇到許多問題,以下記錄一下設定方式。
npm 設定部分
經過查詢一下之後,發現 npm.org 這邊有一個設定方式 preinstall ,需要設定在 package.json 裡面。設定方式如下,
"scripts": {
"preinstall": "node_modules/.bin/cake build"
},
preinstall 這個部分主要是用於,當使用執行 npm install ,在模組安裝之前會觸發 preinstall 裡面的指令。
這邊大家會發現,我們使用 node_modules 裡面的 .bin 目錄下程式進行編譯,因為在 node 模組中,只要模組有提供 cli 的模式,他都會存在 node_modules 底下,被搬移到 .bin 這個目錄中。所以我們都可以在 npm install 相依模組安裝完成後,進入到 node_modules/.bin 裡面找到程式指令。
travis 環境設定
可是如果在 travis 測試環境中,我們會發現,在開始編譯之前,我們是不會有 node_modules 這個模組安裝,因此我們需要增加 travis 的設定條件,讓他在進行任何事情之前,先行進行安裝 node_modules,這邊需要針對設定檔案 .travis.yml
language: node_js
node_js:
- "0.10"
before_script:
./node_modules/.bin/cake build
before_install:
- npm install coffee-script
這邊設定了 before_script, before_install 這兩個指令,將會在整個專案下載之前進行 npm install coffee-script, 安裝完成後,就會進行下載 project, 之後再進行 before_script 的指令。
如此一來 travis 就可以自動幫忙我們執行 ci ,如此一來就可以不用一直將 coffee 重複編譯成 js 檔案。
結語
Coffee 到底好不好用,這件事情見仁見智,不過對於自己開發來說,可以讓程式碼減少說,其實這是最主要的目標,同時也讓程式可讀性提高。這邊其實有很CoffeeScript Testing on Travis CI多指令沒有介紹,例如 cake, mocha 的設定,都還沒有提到,總之,測試,環境,程式品質,這些都是身為開發者必須要堅持的,只有將前置作業完成,才有辦法立下良好的根基。
留言
張貼留言