package.jsonのenginesフィールド

Node.js v6がリリースされ、めでたく標準入力の一気読みに利用できる機能が安定版に降臨した。そこでこの機能を使うようにし、CSSWring v5CSS MQPacker v5をメジャー・リリースした。特に機能は追加されていない。そのままだとNode.js v4以下では一部機能がきちんと動かないのでpackage.jsonenginesフィールドを使うようにしておいた。

enginesフィールドではそのパッケージが動くNode.jsのバージョンを明示することができる。サポートされていないバージョンでインストールしようとすると警告されるようになる。インストール自体はできるので、ユーザーには無視されがちだが、運が良ければ動くかもしれないだけだということをユーザーへ教えることができる。

Node.js v6はLTS版ができてから初めての安定版のリリースになる。失われた互換性や追加された魅力的な新機能のことを考えると、これからはenginesフィールドを積極的に指定しておく必要があるだろう。そうでない場合はLTS版でも問題なく動くように書いたり確認する必要が出てくる。


もちろん古いバージョンはこれまで通り古いNode.jsで動くはずなので、LTS版を使っている場合はそちらを利用すれば良い。それぞれのパッケージはメジャー・リリースなので、つまりd*ependenciesフィールドを上げずに放置すれば問題なく動くことだろう。