IBM Cloud Continuous Delivery で Node.js 10.X のアプリをビルドする

以前書いた Spring Boot の Node.js 版のやり方を書いてみます.
(ちなみに、こちらの方がより搦め手を駆使する厳しい戦いとなりました笑)

Continuous Delivery

さて、今回は npm 6.X, Node 10.X でビルドすることが目的になります.

Continuous Delivery の Node 対応バージョンは以下になります.

  • Node 0.10.29
  • Node 0.10.48
  • Node 0.12
  • Node 0.12.17
  • Node 4.2
  • Node 4.4.5
  • Node 4.6.0
  • Node 6.2.2
  • Node 6.7.0

(デフォルトバージョンは Node 0.10.29 になります)

桁間違いかと思うくらい衝撃なのですが、間違いではありません.

さて、この制限を回避しつつ、任意の Node バージョンでビルドするには少し工夫が必要です.
具体的には nvm を用いて Node のバージョンを変更します.
以下に示すのが Continuous Delivery 上のビルドスクリプトになります.

#!/bin/bash
export NVM_DIR=/home/pipeline/nvm
export NODE_VERSION=10.3.0
export NVM_VERSION=0.33.8

npm config delete prefix \
  && curl https://raw.githubusercontent.com/creationix/nvm/v${NVM_VERSION}/install.sh | sh \
  && . $NVM_DIR/nvm.sh \
  && nvm install $NODE_VERSION \
  && nvm alias default $NODE_VERSION \
  && nvm use default \
  && node -v \
  && npm -v

npm install

npm -v
node -v

npm run build

 

こちらを参考にしました.

nvm の最新版(0.33.11) を使うと権限周りで失敗したので 0.33.8 を使っています.

 

毎回 nvm および Node をダウンロードしてくるので時間が掛かるという欠点はありますが、任意の Node バージョンでビルドすることができました.
(2018/9/16現在は Continuous Delivery の通信料に課金はないのでご安心ください)

早くデフォルトの Node バージョンを上げて欲しいですね.

 

以上です.