インストール - Node.js

提供: MochiuWiki : SUSE, EC, PCB

📢 Webサイト閉鎖と移転のお知らせ
このWebサイトは2026年9月に閉鎖いたします。
新しい記事は移転先で追加しております。(旧サイトでは記事を追加しておりません)

概要

Node.jsは、Web開発において必要不可欠なツールであり、ChromeのV8 JavaScriptエンジン上に構築されたJavaScriptランタイムである。
サーバサイドJavaScriptの実行を可能にして、非同期I/Oモデルを採用することで高いパフォーマンスを実現している。

PHP等のプログラム言語を使用せずに、サーバ側のコードを実行するため、広く使用されている。
また、非同期I/Oモデルを採用しているため、大量の同時接続を効率的に処理でき、アプリケーションの機能が大幅に拡張される。

多くのシステム管理者は、Webアプリケーションが完全に機能できるように、サーバ上でNode.jsを実行する必要がある。
したがって、Node.jsのインストールは、サーバでWebアプリケーションを提供できるようにするための基本的な手順である。


Node.jsのインストール

Node.jsのインストールは、公式リポジトリ、バイナリファイル、ソースコードからのビルド等、複数の方法が用意されている。
プロジェクトの要件や環境に応じて、適切なインストール方法を選択する。

パッケージ管理システムからインストール

Linuxディストリビューションのパッケージ管理システムからNode.jsをインストールすることができる。
ただし、公式リポジトリに含まれるNode.jsのバージョンは最新ではない可能性があるため、注意が必要である。

Node.jsに関連するパッケージがいくつか存在するが、インストールする必要があるのは以下に示すパッケージのみである。

# RHEL系の場合
sudo dnf install nodejs

# SUSE
sudo zypper install nodejs-common nodejs-default


次に、インストールされているNode.jsのバージョンを確認する。

node -v
npm -v


バイナリファイルのインストール

Node.jsの公式Webサイトから、Node.jsのバイナリファイルをダウンロードしてインストールすることができる。
または、Node.jsの公式Webサイトにあるダウンロード一覧にアクセスして、任意のバージョンのNode.jsをダウンロードする。

公式Webサイトから、Linux Binaries (x64) を選択してダウンロードする。

ダウンロードしたファイルを適切なディレクトリに展開する。

tar xf node-v<バージョン>-linux-x64.tar.xz
mv node-v<バージョン>-linux-x64 <Node.jsのインストールディレクトリ>


~/.profileファイル等に、環境変数 PATH を追加する。

vi ~/.profile


 # ~/.profileファイル
 
 export PATH="/<Node.jsのインストールディレクトリ>/bin:$PATH"


インストールが正常に完了したことを確認する。

node -v
npm -v


ソースコードからインストール

Node.jsのビルドに必要なライブラリをインストールする。
この方法は、特定のカスタマイズや最適化を行う場合に有効である。

# RHEL系の場合
sudo dnf install make gcc-c++ python3 python3-pip

# SUSE系の場合
sudo zypper install make gcc-c++ python3 python3-pip


Node.jsの公式Webサイトから、Node.jsのソースコードをダウンロードする。
ダウンロードしたファイルを解凍する。

tar xf node-v<バージョン>.tar.xz
cd node-v<バージョン>


Node.jsをビルドおよびインストールする。

./configure --prefix=<Node.jsのインストールディレクトリ>
make -j $(nproc)
make install


Ninjaビルドシステムを使用する場合は、以下に示す手順でビルド時間を短縮することができる。

./configure --prefix=<Node.jsのインストールディレクトリ> --ninja
NINJA="ninja-build" make
make install


~/.profileファイル等に、環境変数を追記する。

vi ~/.profile


 # ~/.profileファイル
 
 export PATH="/<Node.jsのインストールディレクトリ>/bin:$PATH"


インストールが正常に完了したことを確認する。

node -v
npm -v



Node.jsバージョン管理ツール

Node.jsは新しいバージョンのリリース頻度が高く、プロジェクトによって必要とされるバージョンが異なる場合がある。
バージョン管理ツールを使用することにより、複数のNode.jsバージョンをインストールして、プロジェクトごとに適切なバージョンを自動的に切り替えることが可能となる。

バージョン管理ツールには、nvm、nodenv、fnmが存在する。
これらのツールを使用することで、プロジェクトごとに異なるNode.jsバージョンを柔軟に管理できる。

これらのツールは、.nvmrcや.node-versionファイルを通じて、プロジェクトのNode.jsバージョンを明示的に指定して、チーム全体で一貫した開発環境を維持することを可能にする。

nvm (Node Version Manager)

nvmは、最も広く使用されているNode.jsバージョン管理ツールである。
シェルスクリプトとして実装されており、複数のNode.jsバージョンをユーザごとに管理できる。

nvmのインストール

nvmは、公式のインストールスクリプトを使用してインストールする。
または、nvmのGithubにアクセスして、インストールスクリプトをダウンロードする。

このスクリプトは、nvmを~/.nvmディレクトリにダウンロードして、シェルの設定ファイルを自動的に更新する。

# curlを使用する場合
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash

# wgetを使用する場合
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash


また、nvmは、環境変数 NVM_DIR を使用してインストール先を指定することができる。
インストールスクリプトを実行する前にこの環境変数を設定することにより、任意のディレクトリにnvmをインストールできる。

# インストール先ディレクトリの作成
mkdir -p <任意のインストールディレクトリ>

# 環境変数NVM_DIRを設定してインストール
export NVM_DIR="<任意のインストールディレクトリ>"
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash


~/.profileファイル等に、以下に示す設定を追加する。

 # Bashの場合
 export NVM_DIR="$HOME/.nvm"
 [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
 [ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"
 
 ## または任意のインストールディレクトリを指定する場合
 
 export NVM_DIR="<任意のインストールディレクトリ>"
 [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
 [ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"
 
 # Zshの場合
 export NVM_DIR="$HOME/.nvm"
 [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
 [ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"
 
 ## または任意のインストールディレクトリを指定する場合
 
 export NVM_DIR="<任意のインストールディレクトリ>"
 [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
 [ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"


Fishを使用している場合、bassをインストールする。

fisher install edc/bass


次に、Fishの設定を行う。

 # Fishの場合 : ~/.config/fish/config.fishファイル
 set -gx NVM_DIR "$HOME/.nvm"
 test -s "$NVM_DIR/nvm.sh"; and bass source "$NVM_DIR/nvm.sh"
 
 ## または
 
 set -gx NVM_DIR "<任意のインストールディレクトリ>"
 test -s "$NVM_DIR/nvm.sh"; and bass source "$NVM_DIR/nvm.sh"


nvmが正常にインストールされたことを確認する。

nvm --version


nvmの基本的な使用方法

nvmを使用して、利用可能なNode.jsのバージョンを一覧表示できる。

# 利用可能な全てのNode.jsバージョンを表示
nvm ls-remote

# LTSバージョンのみを表示
nvm ls-remote --lts

# 特定のメジャーバージョンを表示 (例:22.x)
nvm ls-remote 22


特定のバージョンのNode.jsをインストールする。

# Node.js 24.xの最新版をインストール
nvm install 24

# 特定のバージョンをインストール
nvm install 22.12.0

# 最新のLTSバージョンをインストール
nvm install --lts

# 最新バージョンをインストール
nvm install node


インストール済みのNode.jsバージョンを一覧表示する。

nvm ls


使用するNode.jsバージョンを切り替える。

# 特定のバージョンに切り替え
nvm use 22.12.0

# メジャーバージョンを指定して切り替え
nvm use 22

# LTSバージョンに切り替え
nvm use --lts

# デフォルトバージョンを設定
nvm alias default 22.12.0


現在使用中のNode.jsバージョンを確認する。

nvm current


不要になったNode.jsバージョンをアンインストールする。

nvm uninstall 20.10.0


プロジェクトごとのバージョン指定

nvmでは、プロジェクトのルートディレクトリに.nvmrcファイルを配置することにより、プロジェクトごとに使用するNode.jsバージョンを指定できる。
.nvmrcファイルには、使用するNode.jsのバージョン番号を記述する。

# .nvmrcファイルの作成例 (Node.js 22.x)
echo "22.12.0" > .nvmrc

# またはメジャーバージョンのみを指定
echo "22" > .nvmrc

# LTSバージョンを指定
echo "lts/*" > .nvmrc


プロジェクトディレクトリに移動した後、以下に示すコマンドで.nvmrcに記述されたバージョンに切り替える。

cd /path/to/project
nvm use


シェルの設定ファイルに以下に示す関数を追加することにより、ディレクトリ移動時に自動的にNode.jsバージョンを切り替えることができる。

 # ~/.profileファイル または ~/.zprofileファイル
 
 # Bashの場合
 cdnvm() {
   command cd "$@" || return $?
   nvm_path=$(nvm_find_up .nvmrc | tr -d '\n')
 
   if [[ ! $nvm_path = *[^[:space:]]* ]]; then
     declare default_version;
     default_version=$(nvm version default);
 
     if [[ $default_version == "N/A" ]]; then
       nvm alias default node;
       default_version=$(nvm version default);
     fi
 
     if [[ $(nvm current) != "$default_version" ]]; then
       nvm use default;
     fi
   elif [[ -s $nvm_path/.nvmrc && -r $nvm_path/.nvmrc ]]; then
     declare nvm_version
     nvm_version=$(<"$nvm_path"/.nvmrc)
 
     declare locally_resolved_nvm_version
     locally_resolved_nvm_version=$(nvm ls --no-colors "$nvm_version" | tail -1 | tr -d '\->*' | tr -d '[:space:]')
 
     if [[ "$locally_resolved_nvm_version" == "N/A" ]]; then
       nvm install "$nvm_version";
     elif [[ $(nvm current) != "$locally_resolved_nvm_version" ]]; then
       nvm use "$nvm_version";
     fi
   fi
 }
 alias cd='cdnvm'
 cdnvm "$PWD" || exit


nodenv

nodenvは、rbenv (Rubyのバージョン管理ツール) および pyenv (Pythonのバージョン管理ツール) と同様の設計思想に基づいて開発されたNode.jsバージョン管理ツールである。
シンプルな構造と予測可能な動作が特徴であり、シェルに依存しない実装となっている。

nodenvのインストール

nodenvのインストール方法は、Githubから直接インストールする方法が一般的である。

nodenvのGithubからダウンロードおよびインストールする。

# nodenvリポジトリをクローン
git clone https://github.com/nodenv/nodenv.git ~/.nodenv

# パフォーマンス向上のためbash拡張をビルド (オプション)
cd ~/.nodenv
src/configure
make -C src

# node-buildプラグインをインストール (Node.jsのインストールに必要)
git clone https://github.com/nodenv/node-build.git ~/.nodenv/plugins/node-build


~/.profileファイル等に、環境変数を追記する。

 # ~/.profileファイル等
 
 export PATH="$HOME/.nodenv/bin:$PATH"
 eval "$(nodenv init -)"


nodenvが正常にインストールされたことを確認する。

nodenv --version


nodenvの動作確認を行う。

curl -fsSL https://github.com/nodenv/nodenv-installer/raw/master/bin/nodenv-doctor | bash


nodenvの使用方法

nodenvを使用して、インストール可能なNode.jsのバージョンを一覧表示する。

# 全てのバージョンを表示
nodenv install --list

# 特定のメジャーバージョンのみを表示 (例:22.x)
nodenv install --list | grep "^22\."


特定のバージョンのNode.jsをインストールする。

# Node.js 22.xの特定バージョンをインストール
nodenv install 22.12.0

# インストール後、shimを再構築
nodenv rehash


インストール済みのNode.jsバージョンを一覧表示する。

nodenv versions


グローバルで使用するNode.jsバージョンを設定する。

nodenv global 22.12.0


現在のディレクトリおよびそのサブディレクトリで使用するNode.jsバージョンをローカルに設定する。

nodenv local 22.12.0


現在のシェルセッションでのみ使用するNode.jsバージョンを設定する。

nodenv shell 22.12.0


現在使用中のNode.jsバージョンを確認する。

node -v
nodenv version


プロジェクトごとのバージョン指定

nodenvでは、プロジェクトのルートディレクトリに.node-versionファイルを配置することにより、プロジェクトごとに使用するNode.jsバージョンを指定できる。

このファイルは、nodenv localコマンドで自動的に作成される。

# プロジェクトディレクトリに移動
cd /path/to/project

# ローカルバージョンを設定 (.node-versionファイルが作成される)
nodenv local 22.12.0


手動で.node-versionファイルを作成することもできる。

echo "22.12.0" > .node-version


nodenvは、カレントディレクトリから親ディレクトリに向かって.node-versionファイルを検索して、見つかったバージョンを自動的に使用する。
この仕組みにより、プロジェクトディレクトリに移動するだけで、適切なNode.jsバージョンが自動的に選択される。

fnm (Fast Node Manager)

fnmは、Rust言語で実装された高速なNode.jsバージョン管理ツールである。
クロスプラットフォーム対応であり、Windows、Linux環境で一貫した動作を提供する。

nvmやnodenvと比較して、起動時間が大幅に短縮されており、シェルの初期化パフォーマンスが重視される環境で特に有効である。

fnmのインストール

fnmは、公式のインストールスクリプトを使用してインストールする。

curl -fsSL https://fnm.vercel.app/install | bash


Cargoを使用する場合 (Rustのパッケージマネージャー) は、以下に示すコマンドでインストールできる。

cargo install fnm


インストールスクリプトは、シェルの設定ファイルを自動的に更新するが、手動で設定する場合は以下に示す内容を追加する。
--use-on-cd オプションは、ディレクトリ移動時に自動的にNode.jsバージョンを切り替える機能を有効にする。

 # Bashの場合 : ~/.profileファイル
 eval "$(fnm env --use-on-cd)"
 
 # Zshの場合 : ~/.zprofileファイル
 eval "$(fnm env --use-on-cd)"
 
 # Fishの場合 : ~/.config/fish/config.fish
 fnm env --use-on-cd | source


fnmが正常にインストールされたことを確認する。

fnm --version


fnmの使用方法

fnmを使用して、利用可能なNode.jsのバージョンを一覧表示する。

# 全てのバージョンを表示
fnm list-remote

# 特定のメジャーバージョンのみを表示 (例:22.x)
fnm list-remote | grep "v22\."


特定のバージョンのNode.jsをインストールする。

# Node.js 22.xの特定バージョンをインストール
fnm install 22.12.0

# 最新のLTSバージョンをインストール
fnm install --lts

# 最新バージョンをインストール
fnm install latest


インストール済みのNode.jsバージョンを一覧表示する。

fnm list


使用するNode.jsバージョンを切り替える。

# 特定のバージョンに切り替え
fnm use 22.12.0

# LTSバージョンに切り替え
fnm use --lts


デフォルトで使用するNode.jsバージョンを設定する。

fnm default 22.12.0


現在使用中のNode.jsバージョンを確認する。

fnm current


不要になったNode.jsバージョンをアンインストールする。

fnm uninstall 20.10.0


プロジェクトごとのバージョン指定

fnmは、.node-versionファイルおよび.nvmrcファイルの両方をサポートしている。
プロジェクトのルートディレクトリにいずれかのファイルを配置することで、プロジェクトごとに使用するNode.jsバージョンを指定できる。

# .node-versionファイルの作成 (Node.js 22.x)
echo "22.12.0" > .node-version

# または.nvmrcファイルの作成
echo "22.12.0" > .nvmrc


fnmの設定で--use-on-cdオプションを有効にしている場合、ディレクトリに移動すると自動的に指定されたNode.jsバージョンに切り替わる。
このオプションが有効でない場合は、手動でfnm useコマンドを実行する必要がある。

fnmは、他のバージョン管理ツールからの移行を容易にするため、複数の設定ファイル形式をサポートしている。
優先順位は、.node-version、.nvmrc、package.jsonのengines.nodeフィールドの順となる。


npm (Node Package Manager)

npmは、Node.jsに標準で付属するパッケージマネージャーである。
Node.jsをインストールすると自動的にnpmもインストールされるため、追加のセットアップは不要である。
npmは、世界最大のソフトウェアレジストリであり、100万を超えるパッケージが公開されている。

npmは、Node.jsの標準パッケージマネージャーとして、依存関係の管理、パッケージのインストールと更新、スクリプトの実行等、開発に必要な機能を包括的に提供している。
package.jsonおよびpackage-lock.jsonファイルを適切に管理することで、プロジェクトの依存関係を確実に制御できる。

npmの基本的な使用方法

新しいプロジェクトを初期化する時は、以下に示すコマンドを実行する。
これは、プロジェクトの基本情報を設定するためのpackage.jsonファイルを作成する。

# 対話形式でpackage.jsonを作成
npm init

# デフォルト設定でpackage.jsonを作成
npm init -y


package.jsonファイルおよびpackage-lock.jsonファイルに記述されている依存関係をインストールする場合は、以下に示すコマンドを使用する。
これは、プロジェクトのルートディレクトリで実行する必要がある。

npm install

# または

npm i


package-lock.jsonファイルが存在する場合、npmはこのファイルを使用して正確なバージョンのパッケージをインストールする。
これにより、異なる環境でも同じバージョンの依存関係がインストールされることが保証される。

新しいパッケージをプロジェクトに追加する場合は、以下に示すコマンドを実行する。

# 本番環境で必要な依存関係として追加
npm install <パッケージ名>

# 開発環境でのみ必要な依存関係として追加
npm install --save-dev <パッケージ名>
## または
npm install -D <パッケージ名>

# 特定のバージョンを指定してインストール
npm install <パッケージ名>@<バージョン>

# 複数のパッケージを同時にインストール
npm install <パッケージ1> <パッケージ2> <パッケージ3>


インストールされているパッケージを更新する。

# 全てのパッケージを更新
npm update

# 特定のパッケージを更新
npm update <パッケージ名>

# メジャーバージョンを含む更新 (慎重に実行すること)
npm update --save


パッケージをアンインストールする。

npm uninstall <パッケージ名>
# または
npm un <パッケージ名>


インストールされているパッケージの一覧を表示する。

# ツリー形式で表示
npm list

# トップレベルのパッケージのみ表示
npm list --depth=0

# グローバルにインストールされているパッケージを表示
npm list -g --depth=0


パッケージに関する情報を表示する。

npm info <パッケージ名>

# 特定のフィールドのみ表示
npm info <パッケージ名> version
npm info <パッケージ名> dependencies


package.jsonに定義されているスクリプトを実行する。

npm run スクリプト名

# 例:テストスクリプトを実行
npm run test
# または短縮形
npm test

# 例:ビルドスクリプトを実行
npm run build


パッケージの脆弱性をチェックする。

# 脆弱性の確認
npm audit

# 脆弱性の自動修正 (可能な場合)
npm audit fix


ローカルインストールとグローバルインストール

npmでは、パッケージをローカル または グローバルにインストールできる。

  • ローカルインストール
    デフォルトのインストール方法であり、カレントディレクトリ直下のnode_modulesディレクトリにパッケージが保存される。
    これにより、プロジェクトごとに異なるバージョンのパッケージを使用できるメリットがある。


# ローカルインストール
npm install mermaid

# インストール後のディレクトリ構造
.
├── node_modules/      # インストールされたパッケージ群のディレクトリ
│   └── mermaid/       # mermaidパッケージ
│   └── ...            # その他の依存パッケージ
├── package.json       # プロジェクトの設定と依存関係
└── package-lock.json  # 依存関係の詳細情報


※注意
プロジェクトごとに独立したnode_modulesディレクトリが生成される。
package.jsonファイルが無い状態でインストールすると警告が表示されるため、事前にnpm initを実行することを推奨する。

また、バージョン管理システムで公開する場合は、.gitignoreファイルにnode_modulesディレクトリを追加することが推奨される。

プロジェクトを共有する場合は、package.jsonファイルおよびpackage-lock.jsonファイルを含める必要がある。

  • グローバルインストール
    -g オプションを指定することで実行される。
    グローバルにインストールされたパッケージは、システム全体で使用できるコマンドラインツールとして機能する。


# グローバルインストール
npm install -g typescript

# 複数のパッケージを同時にグローバルインストール
npm install -g typescript eslint prettier


グローバルインストールディレクトリは、デフォルトでは以下に示す場所となる。

# Node.jsをシステムにインストールした場合
/usr/local/lib/node_modules
/usr/local/bin

# nvmを使用している場合
~/.nvm/versions/node/v<バージョン>/lib/node_modules
~/.nvm/versions/node/v<バージョン>/bin

# nodenvを使用している場合
~/.nodenv/versions/<バージョン>/lib/node_modules
~/.nodenv/versions/<バージョン>/bin

# fnmを使用している場合
~/.local/share/fnm/node-versions/v<バージョン>/installation/lib/node_modules
~/.local/share/fnm/node-versions/v<バージョン>/installation/bin


グローバルインストールディレクトリを変更することもできる。

 # npmのグローバルディレクトリを作成
 mkdir -p ~/.npm-global
 
 # npmの設定を変更
 npm config set prefix '~/.npm-global'
 
 # 環境変数PATHの設定 (~/.profileファイル等に追記)
 export PATH="$HOME/.npm-global/bin:$PATH"


現在の設定を確認する。

# グローバルインストールディレクトリの確認
npm config get prefix

# 全てのnpm設定の確認
npm config list

# 設定の詳細を表示
npm config list -l


npmのキャッシュ管理

npmは、ダウンロードしたパッケージをローカルにキャッシュすることで、インストール速度を向上させている。

キャッシュに関連する操作は以下の通りである。

# キャッシュの場所を確認
npm config get cache

# キャッシュをクリア
npm cache clean --force

# キャッシュの整合性を確認
npm cache verify


package.json / package-lock.json

package.jsonファイルは、プロジェクトのメタデータと依存関係を定義する重要なファイルである。
このファイルには、プロジェクト名、バージョン、説明、依存パッケージのリスト、スクリプトコマンド等が含まれる。

package.jsonの主要なフィールドは以下の通りである。

 {
   "name": "プロジェクト名",
   "version": "1.0.0",
   "description": "プロジェクトの説明",
   "main": "index.js",
   "scripts": {
     "start": "node index.js",
     "test": "jest",
     "build": "webpack"
   },
   "dependencies": {
     "express": "^4.18.0"
   },
   "devDependencies": {
     "jest": "^29.0.0"
   },
   "engines": {
     "node": ">=22.0.0"
   }
 }


package-lock.jsonファイルは、インストールされた依存関係の正確なバージョンツリーを記録する。
このファイルにより、チームメンバーや異なる環境で同一の依存関係がインストールされることが保証される。

package-lock.jsonファイルは自動生成されるため、手動で編集する必要はなく、バージョン管理システムにコミットすることが推奨される。

npmの高度な機能

npmには、プロジェクト管理を効率化するための高度な機能が用意されている。

モノレポ構成の管理

npmワークスペース機能を使用することで、モノレポ構成を管理できる。

 {
   "name": "my-monorepo",
   "workspaces": [
     "packages/*"
   ]
 }


開発中のパッケージのテスト

npm linkコマンドを使用することで、ローカルで開発中のパッケージをテストできる。

# パッケージディレクトリでリンクを作成
cd /path/to/my-package
npm link

# プロジェクトディレクトリでリンクを使用
cd /path/to/my-project
npm link my-package


CI/CD環境での依存関係のインストール

npm ciコマンドを使用することで、CI/CD環境での依存関係のインストールを高速化できる。
このコマンドは、package-lock.jsonファイルに基づいて依存関係をインストールして、package.jsonファイルとの不整合がある場合はエラーを返す。

npm ci


更新可能なパッケージの確認

npm outdatedコマンドを使用することで、更新可能なパッケージを確認できる。

npm outdated