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以降は安定して新機能が搭載された新バージョンがリリースされていきました。 このバージョン数には以下のように
- 偶数(v4, v6...):安定版
- 奇数(v5, v7...):開発版
と交互に約半年ごとにリリースすることで、安定性と新機能性をうまく両立させています。 そして安定版は、LTS(Long-term Support)として約2年程度はサポートされるので、実務で利用するなら安定版のほうがよいでしょう。
パッケージ管理
Node.jsが人気になった理由としてパッケージ管理ツールがあります。 パッケージ管理ツールは、公開されているライブラリ・WebFrameworkを手軽にインストール・バージョンアップ・削除してくれるツールです。
npm
npm社が開発しているパッケージ管理ツール。Node.jsインストール時に同梱されているので、ほぼ標準ツールといってもいいかもしれない。
Yarn
npm互換のあるFacebook・Exponent・Google・Tildeが共同開発したパッケージ管理ツール。npmより高速にインストールできたり、より厳密なライブラリ管理ができる。
どちらを使うべきかというと個人的には
- 新規で利用するならnpm
- 既存プロジェクトやWebFrameworkがYarnならYarn
が、よいかと思います。近年はnpmもがんばっておりYarnとの差が縮まった印象です。
Node.jsの基本的な部分について紹介しました。 ややこしくて混乱することがあると思うので、そのときに見かえてもらえればと思います。