なぜGruntを利用するか
本番にデプロイするときはCSSをminifyしたかった、という些細な理由です。jekyllで完結できればいいんですがね(ひょっとしたら何かいいパッケージあるのかしらん…ま、いいけど)。
結論
結論からいうと以下のymlで上手くいきました。
wercker.yml
package.json
この設定に至るまで…
最初は「まぁ、node突っ込んでnpm install
すれば余裕っしょ?」と思って以下のように書いてました。
wercker.yml
ところが、残念ながらbuildしてみたらエラー。
何やら「registry
からとってこれませんでした」と。じゃあ、registry明記して差し上げましょう。
wercker.yml
これで行けるだろうと思ったら、またエラー。
今度は「package.jsonで指定されているGruntに適するバージョンないよ」って言われています。最大でも0.3.13-a
までしかない模様。いやいや、そんな馬鹿な。
npmのリストが古いのかと思ってnpm update
を設定。
wercker.yml
今度はcompass
がだめそう…。試行錯誤してみましたが、同じようなエラーばかり出てきます。
なんか変だ、と思いnode.jsのバージョンを確認します。
wercker.yml
これでbuildしたところ…。
衝撃的なことに、nodeのバージョンが古い…。かなり古い。調べたところUbuntuにおいてapt-get nodejs
では最新版がインストールされない模様。
そこでnodeの最新版が登録されているregistoryを登録しようと思い以下のようにwercker.ymlに追記します。
wercker.yml
まずはレジストリを追加するコマンドadd-apt-repository
を利用可能にするsoftware-properties-common
をインストール。
でもってadd-apt-repository
を利用して、nodejsの最新版が利用できるrepositoryを追加します。
これでようやく上手くいきました。
結論としては以下の形になります。
(冒頭の記述を再掲)
wercker.yml
なおsoftware-properties-common
をapt-get
で進めましたが、aptitude
でもいけました。
package.json
boxを自分で作って利用するのもあり
今回のように面倒なことになるのであれば、最初から自前のbox
を使った方が手っ取り早いと思いました。プリセットのwercker/ruby
だとどうしても限界がありますね。