先日 Elm 0.19 がついにリリースされました!
でも、まだ elm-test
が対応してなかったりして、全てのプロジェクトをいきなり Elm 0.19 にアップデートするっていうわけにはいかないですよね...
そこで、プロジェクトごとにElmのバージョンを切り替える、とってもシンプルなTipsをご紹介します。
グローバルインストールしない
タイトルのとおりです。以上です。
もうちょっとだけ補足します。
通常は以下のように -g
オプションをつけてグローバルインストールします。
# 0.18の場合
$ npm i -g elm@0.18
# 0.19の場合
$ npm i -g elm@0.19.0-bugfix2
代わりに以下のように -g
オプションをつけないでローカルにインストールするだけです。
# 0.18の場合
$ npm i elm@0.18
# 0.19の場合
$ npm i elm@0.19.0-bugfix2
これで、たとえば以下のように npx
コマンドを使ってそのプロジェクト用の Elm コンパイラを使い分けられます。
# 0.18の場合
$ npx elm-make --help
# 0.19の場合
$ npx elm --help
関連コマンドもローカルにインストールする
同じように、elm-format
とか elm-analyse
、elm-verify-examples
、elm-test
もローカルインストールしてしまいます。
$ npm i elm-format elm-analyse elm-verify-examples elm-test
$ # Elm 0.19 の場合は `elm-tst@beta` でインストールします。
通常、elm-test
コマンドをグローバルインストールした場合は
$ elm-test --compiler=$(npm bin)/elm-make
のようにローカルインストールした Elm コンパイラの場所を教えてやる必要があります。
elm-test
などの周辺コマンドもインストールしてしまうことで、npx
が勝手にローカルの elm
を実行パスに含めてくれるため、 --compiler
オプションが不要になります。
$ npx elm-test
0.19へのアップグレードもらくらく
ローカル環境に Elm コンパイラや周辺ツールをインストールしておくと、0.19へのアップグレードも簡単に行えます。
まず、npm-check-updates
コマンドを使えるようにしておきます。
(npm-check-updates
はグローバルインストールしておきましょう)
$ npm i -g npm-check-updates
このコマンドを使うと、package.json
で管理されている依存パッケージのバージョンをアップグレードすることができます。
$ ncu
elm ^0.18.0 → ^0.19.0-bugfix2
elm-analyse ^0.14.2 → ^0.15.0
elm-format ^0.6.1-alpha → ^0.8.0
elm-verify-examples ^2.3.1 → ^3.0.0
-u
オプションをつけると package.json
も更新してくれます。
実際にアップグレードしましょう。
$ ncu -u
$ npm i
$ npm i elm-test@beta
$ # elm-test は beta を指定しないと `elm-test init` などが使えません
(もちろん、宗教上の理由で ncu
を使えない方は手作業で各パッケージのバージョンをアップグレードしても大丈夫です)
あとは elm-upgrade
もローカルインストールして
$ npm i elm-upgrade
npx
コマンドで実行するだけです。
$ npx elm-upgrade
もちろん、すでに Elm コンパイラなどもバージョンアップされているので、
$ npx elm make --output=/dev/null src/Foo.elm
みたいにコンパイルして試しながら elm-upgrade
で対応しきれなかった部分を修正していきます。