2017年、久しぶりにcoffee scriptがメジャーアップデートを行いました。
「coffeescript?オワコンだろ?」と言われる中、jsの括弧の多さに辟易してtype scriptやES6へ進めない、進みたくないcoffee使いの方は根強く存在していると思われます。(知らんけど)
しかしcoffee script2(以下2系)はES2015/6に準拠する形でのコンパイルが行われるらしいので、互換性の心配が付きまといます。しかし同時にasync/awaitが使えるようになったというので興味はあります。
過去にcoffeeで書いた遺産が動かなくなったら困るので移行できない、でも使ってみたい。
そこで私はcoffeescriptを残したまま「coffeescript2」をインストールすることにしました。
2018/03/19追記
coffee-scriptはcoffeeコマンドを呼び出す場所(ディレクトリ)直下のnode_modulesを探し、そこにcoffee-scriptがあれば(ローカルインストールしていれば)それを優先して使用します。
長々と書いていますが,coffeeコマンドを呼び出す場所にローカルインストールしていればそこだけで使えます。他の場所には影響しませんので2系を使う場所でローカルインストールすればいいだけです。
概要
- 適当な場所に2系をインストールする
- パスの通った場所にシンボリックリンクを張る
- 「coffee2」というコマンドが使えるようになる
実践
1. 適当な場所に2系をインストールする
場所は本当にどこでもいいです。仮に$HOME/node_modules_alt
というディレクトリにインストールしてみましょう。
cd
mkdir node_modules_alt
cd node_modules_alt
npm i -y
これで場所の準備はできました。インストールしてみましょう。
ローカルインストールですので-g
オプションを付けないように注意してください。
npm i coffeescript
1系か2系かややこしくなりそうなので名前を変えても良いと思います(任意)
cd node_modules
mv coffeescript coffeescript2
2. パスの通った場所にシンボリックリンクを張る
このままでは当然「coffee2」というコマンドは使えませんのでリンクを張ります。
私は$HOME/bin
という場所にパスを通しています。
無い人は以下の様に。
cd
mkdir bin
この場所にパスを通すために.bashrc
や.zshrc
などに追記します。
export PATH=$HOME/bin:$PATH
あとはリンクを張るだけです。
cd ~/bin
ln -s ~/node_modules_alt/node_modules/coffeescript2/bin/coffee coffee2
3. 「coffee2」というコマンドが使えるようになる
試してみましょう。
> coffee2 --version
CoffeeScript version 2.2.3
念のためにcoffeeも。
> coffee --version
CoffeeScript version 1.12.7
これで2系が使えるようになりました。
あとは今までコンパイルの時に使っていたcoffee
コマンドをcoffee2
に変えるだけです。
不具合があったらまたcoffee
に変えるだけで戻せます。
enjoy your coffee life!!