連載
» 2016年06月02日 05時00分 UPDATE

Dev Basics/Keyword:Node.js

Node.jsはサーバサイドで動作するJavaScript実行環境。イベントとノンブロッキングI/Oを活用し、高性能なWebアプリを構築できる。

[かわさきしんじ,Insider.NET編集部]
「Dev Basics/Keyword」のインデックス

連載目次

 Node.jsは、サーバサイドで実行されるJavaScript実行環境で、グーグルのV8 JavaScriptエンジン上に構築されている。イベントドリブンモデル、ノンブロッキングI/Oといった機構を活用することで、スケーラブルなネットワークアプリを構築できる。

Node.jsの概要

 Node.jsはサーバサイドで動作する非同期イベント駆動型のJavaScript実行環境だ。シングルスレッドモデルの実行環境でありながら、イベントとノンブロッキングI/O(と、それらで頻繁に使用されるコールバック関数)を活用することでマルチスレッドベースのWebアプリよりも高性能かつスケーリングが容易なWebアプリを構築できるのがその大きな特徴といえる(詳細については「Tech Basics/Keyword: Node.js」を参照されたい)。

 その一方で、Node.jsの活用範囲は広がりつつある。例えば、Electronを使うことで、Node.jsをベースとして、JavaScript+HTML5+CSSでクロスプラットフォームなデスクトップアプリを構築可能だ。

Node.jsのバージョン

 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のLTSスケジュール Node.jsのLTSスケジュール
画像はGitHubの「nodejs/LTSのNode.js Long-term Support Working Group」のschedule.pngより。
COPYRIGHT (C) 2015 NODESOURCE, LICENSED UNDER CC-BY 4.0

 これらを踏まえて、現在、よく目にするNode.jsのバージョンをまとめると次のようになる。

  • v0.10/v0.12: 2016年中にはメンテナンスモードが終了
  • v4: Node.jsをベースに開発が行われたio.jsがNode.jsに再統合されたもの。現在、LTS期間
  • v5: 2016年6月にはサポートが終了する
  • v6: 本稿執筆時点(2016年5月31日)のCurrentリリース。2016年10月にLTS期間に入る
  • v7: 次期メジャーリリース

 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は頻繁にリリースが行われている(今見たようにメジャーバージョンのリリースですら半年に一度行われる)。新バージョンがリリースされるたびに、以前のバージョンを削除して、新バージョンをインストールするのは実際には互換性やバグなどの面で難しいだろう。そこで役に立つのがNode.js自体のバージョンを管理するツール類だ。

 有名なツールとしては、Mac OS X(以降、OS X)/Linuxなどで動作するnodebrewnvmなどがある。Windowsではnodistnvm-windowsなどがある。

 Node.jsの公式サイトからわざわざダウンロード/インストールするよりも、これらのツールを使う方が管理や手間の面で簡単だ。なお、詳細についてはそれぞれのリンク先を参照されたい。

nvm-windowsを使用しているところ nvm-windowsを使用しているところ


 Node.jsはサーバサイドで動作するJavaScript実行環境であり、スケーラブルなWebアプリ構築のためによく使われる(が、その適用範囲は既にWebアプリだけではなくなっている)。

 Node.jsは6カ月に一度Currentバージョンがリリースされる。その一部はLTSと呼ばれるもので長期間のサポートが行われる。安定した環境を求めるのであれば、LTSを採用するのがよいだろう。Node.jsのバージョン管理を行うツールもあるので、これらを利用すれば、手元の環境でさまざまなバージョンのNode.jsを管理可能だ。

 なお、Node.jsは数多くのパッケージと、それらを管理するためのツールであるnpmによって支えられている。これらについては別途解説をする予定だ。

参考資料


「Dev Basics/Keyword」のインデックス

Dev Basics/Keyword

Copyright© 1999-2017 Digital Advantage Corp. All Rights Reserved.

@IT Special

- PR -

TechTargetジャパン

この記事に関連するホワイトペーパー

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。