Node.jsとは
ブラウザ上で動作するJavaScriptを、サーバー上で動作させるためのソフトウェア
Node.jsをフロントエンド開発でも使っているのはなぜ?
- npm でのパッケージ管理
- パフォーマンス最適化のために、JavaScriptやCSSファイルを少数のファイルにまとめる(バンドル)
- テストツールを用いてユニットテストやE2E テストを記述する
など、Node.jsの役割はいろいろある
npm
- Node.jsのパッケージ管理システム(パッケージのインストールと整合性の管理をする)
- 現在ではフロントエンドのパッケージ管理にも使用されるようになった
Node.jsのインストール
[推奨] Homebrew経由の anyenv 経由の nodenv 経由でNode.jsをインストールする
anyenv
- 「**env」をまとめて管理してくれる
nodenv
- プロジェクト毎のバージョン切り替えが楽になる(詳しくはこの後解説)
インストール手順
① Homebrewでanyenvをインストール
$ brew install anyenv
$ echo 'eval "$(anyenv init -)"' >> ~/.zshrc
$ exec $SHELL -l // シェルを再起動
※「>> ~/.zshrc」の部分は使用シェルによって適宜変更
② anyenvでnodenvをインストール
$ anyenv install -l // anyenvでインストール可能な「**env」の一覧を表示
$ anyenv install nodenv
$ exec $SHELL -l // シェルを再起動
③ nodenvでNode.jsをインストール
$ nodenv install -l // nodenvでインストール可能なNode.jsのバージョンを表示
$ nodenv install 14.4.0 // バージョンを指定してインストール
使い方
デフォルトで使うバージョンを設定
$ nodenv global 14.4.0 // 先ほどインストールしたv14.4.0を使用
$ node -v
v14.4.0
プロジェクトで使うバージョンを設定
$ nodenv install 12.18.2 // 使用するバージョンをインストール
$ mkdir testdir
$ cd testdir // プロジェクトルートに移動
$ nodenv local 12.18.2 // バージョンを指定
$ node -v
v12.18.2
-
$ nodenv local バージョン
を実行すると、プロジェクトルートに「.node-version」ファイルが作成され、そのプロジェクトで使用するバージョンが記載される - プロジェクトディレクトリにいる時は「.node-version」のバージョンが使用され、それ以外の時は
$ nodenv global バージョン
で設定したデフォルトのバージョンが使用される
Node.jsはバージョンによって挙動が異なる
- 開発者各々のローカルのNode.jsのバージョンが違うと... 自分の環境では動くのにレビュワーの環境では動かない!
- 本番環境のNode.jsとローカルのNode.jsのバージョンが違うと... ローカルでは動くのに、本番ではエラーが発生!
nodenvなら「.node-version」ファイルをGitで共有すれば、これらの問題を防げる
複数の案件を掛け持ちしている時も、プロジェクト毎にNode.jsのバージョンを切り替える必要がない
※上記は各々のローカルでNode.jsを動かす場合のみ考慮が必要(Dockerのコンテナ内でNode.jsを動かすプロジェクトでは気にしなくて良い)