Node.jsはサーバサイドで動作するJavaScript実行環境。イベントとノンブロッキングI/Oを活用し、高性能なWebアプリを構築できる。
Node.jsは、サーバサイドで実行されるJavaScript実行環境で、グーグルのV8 JavaScriptエンジン上に構築されている。イベントドリブンモデル、ノンブロッキングI/Oといった機構を活用することで、スケーラブルなネットワークアプリを構築できる。
Node.jsはサーバサイドで動作する非同期イベント駆動型のJavaScript実行環境だ。シングルスレッドモデルの実行環境でありながら、イベントとノンブロッキングI/O(と、それらで頻繁に使用されるコールバック関数)を活用することでマルチスレッドベースのWebアプリよりも高性能かつスケーリングが容易なWebアプリを構築できるのがその大きな特徴といえる(詳細については「Tech Basics/Keyword: Node.js」を参照されたい)。
その一方で、Node.jsの活用範囲は広がりつつある。例えば、Electronを使うことで、Node.jsをベースとして、JavaScript+HTML5+CSSでクロスプラットフォームなデスクトップアプリを構築可能だ。
Node.jsには現在、幾つかのバージョンが存在している。以下ではそれらについて簡単に見ていくが、その前に知っておいた方がよいことがある。それは「Current」バージョンとLTS(Long Term Support)の2つの概念だ。
Node.jsは6カ月ごとに新しい「Current」バージョンがリリースされる(以前は「Stable」バージョンと呼んでいたが、後述のLTSと現行開発バージョンとの違いを明確にするためにNode.js v6.0.0のリリース時に「Stable」から「Current」に変更された)。
Node.jsは偶数バージョンが4月、奇数バージョンが10月にリリースされる。そして、奇数バージョンがリリースされると直前の偶数バージョンはCurrentバージョンではなくなり、LTS期間に入る。LTSとしてサポートされる期間は18カ月であり、その後に12カ月のメンテナンスモードがある。
つまり、Node.jsの偶数バージョンはそのリリースから「6カ月(Current)+18カ月(LTS)+12カ月(メンテナンス)=36カ月」の間、サポートが続けられる。対して、奇数バージョンは次のCurrentバージョンのリリース後、数カ月でサポートが終了する。例えば、v5はv6のリリース後、v6への移行作業を目的として2カ月間だけサポートが継続されることになっている(v5の方がv4よりもサポート期間が短く、そろそろv5のサポート期間は終了することに注意しよう)。
これらを図にまとめたものが以下になる。
これらを踏まえて、現在、よく目にするNode.jsのバージョンをまとめると次のようになる。
v4でNode.jsとio.jsが統合された以降は、バージョンが上がるに連れて、JavaScriptエンジン(Chrome V8)の更新、新機能の追加(および一部機能の廃止)が行われている。と同時にECMAScript 2015への準拠の度合いが増している。v6.0.0では93%の機能がサポートされているそうだ。Node.jsのECMAScriptへの準拠の度合いは「Node.js ES 2015 Support」ページで参照できる。
Node.jsは頻繁にリリースされ、そのバージョンアップはなかなか面倒だ。だが、ローカルな開発環境でNode.jsのバージョンを管理するためのツールもある。次にこれらのツールについて簡単に紹介する。
Node.jsは頻繁にリリースが行われている(今見たようにメジャーバージョンのリリースですら半年に一度行われる)。新バージョンがリリースされるたびに、以前のバージョンを削除して、新バージョンをインストールするのは実際には互換性やバグなどの面で難しいだろう。そこで役に立つのがNode.js自体のバージョンを管理するツール類だ。
有名なツールとしては、Mac OS X(以降、OS X)/Linuxなどで動作するnodebrew、nvmなどがある。Windowsではnodist、nvm-windowsなどがある。
Node.jsの公式サイトからわざわざダウンロード/インストールするよりも、これらのツールを使う方が管理や手間の面で簡単だ。なお、詳細についてはそれぞれのリンク先を参照されたい。
Node.jsはサーバサイドで動作するJavaScript実行環境であり、スケーラブルなWebアプリ構築のためによく使われる(が、その適用範囲は既にWebアプリだけではなくなっている)。
Node.jsは6カ月に一度Currentバージョンがリリースされる。その一部はLTSと呼ばれるもので長期間のサポートが行われる。安定した環境を求めるのであれば、LTSを採用するのがよいだろう。Node.jsのバージョン管理を行うツールもあるので、これらを利用すれば、手元の環境でさまざまなバージョンのNode.jsを管理可能だ。
なお、Node.jsは数多くのパッケージと、それらを管理するためのツールであるnpmによって支えられている。これらについては別途解説をする予定だ。
Copyright© Digital Advantage Corp. All Rights Reserved.