2018/11 Node.jsの基礎の基礎

日々進化し広く使われるようになったNode.jsですが、google検索などで古くなった記事を見て混乱することもあります。 そこで、今回はNode.jsの基礎の基礎について紹介します。

Node.jsとは

JavaScriptは元来ブラウザ内で動的に表示を変えたり通信を行えるプログラミング言語でした。そのためJavaScriptが動く=実行環境はブラウザでした。 そんなJavaScriptをブラウザがインストールされていなくてもWindows, Mac, Linuxで動作できる実行環境がNode.jsです。

混乱されがちですが、Node.jsはブラウザの表示を動的に変えることはできません。Node.jsは、逆にブラウザでは制限のあるファイル操作や通信が自由に行えます。このことから、Node.jsはWebアプリケーションサーバやツールとして活躍しています。

Node.jsの歴史

Node.jsは日々進化していったので、ちょっと目を話していると様変わりしていると感じる人もいると思うので、過去の年表を簡単に紹介します。

version リリース 備考
v0.10 2013/06 人気が出始めた
v0.12 2015/02 ES6対応
io.js Node.jsの開発が停滞したので
v0.12からforkして分岐したプロジェクト
v4(安定版) 2015/09 開発体制を一新
体制が整ったのでio.jsを吸収合併
ES6強化
v5(開発版) 2015/10 ES2015対応
v6(安定版) 2016/04 ES2015強化
module load性能の改善
v7(開発版) 2016/10 WHATWG URLの試験的サポート
v8(安定版) 2017/05 async/await
ケツカンマ許容
v9(開発版) 2017/10 http2対応
v10(安定版) 2018/04 N-API
for-await
ECMAScript Modules実験的サポート
v11(開発版) 2018/10

v0.12あたりで新機能を載せた新バージョンをコンスタントにリリースできなくなり、業を煮やしてio.jsとして分離したりとイザコザがありました。 その後、Node.jsが体制を改めたため、io.jsとしても分離しつづけて世の中を混乱させたくはないということもありNode.jsへ合併されました。

バージョン

そしてv4以降は安定して新機能が搭載された新バージョンがリリースされていきました。 このバージョン数には以下のように

と交互に約半年ごとにリリースすることで、安定性と新機能性をうまく両立させています。 そして安定版は、LTS(Long-term Support)として約2年程度はサポートされるので、実務で利用するなら安定版のほうがよいでしょう。

パッケージ管理

Node.jsが人気になった理由としてパッケージ管理ツールがあります。 パッケージ管理ツールは、公開されているライブラリ・WebFrameworkを手軽にインストール・バージョンアップ・削除してくれるツールです。

npm

npm社が開発しているパッケージ管理ツール。Node.jsインストール時に同梱されているので、ほぼ標準ツールといってもいいかもしれない。

Yarn

npm互換のあるFacebook・Exponent・Google・Tildeが共同開発したパッケージ管理ツール。npmより高速にインストールできたり、より厳密なライブラリ管理ができる。

どちらを使うべきかというと個人的には

が、よいかと思います。近年はnpmもがんばっておりYarnとの差が縮まった印象です。

Node.jsの基本的な部分について紹介しました。 ややこしくて混乱することがあると思うので、そのときに見かえてもらえればと思います。