Node.js バージョン管理
fnm は強力なバージョン管理機能を提供し、複数の Node.js バージョンを簡単に切り替えできます。
基本操作
インストール済みバージョンを表示
bash
fnm list出力例:
* v20.10.0 default
v18.19.0
v16.20.2*は現在使用中のバージョンを示しますdefaultはデフォルトバージョンを示します
現在のバージョンを表示
bash
fnm currentバージョンを切り替え
bash
# 特定のバージョンに切り替え
fnm use 20
# 特定の正確なバージョンに切り替え
fnm use 20.10.0
# バージョンがインストールされていない場合、自動インストールして切り替え
fnm use 18 --install-if-missingデフォルトバージョン
デフォルトバージョンを設定
bash
fnm default 20デフォルトバージョンは:
- 新しいターミナルセッション開始時に使用されるバージョン
- バージョンファイルがない場合に使用されるバージョン
デフォルトバージョンを表示
bash
fnm defaultバージョンエイリアス
エイリアスを使用すると、バージョンに覚えやすい名前を設定できます。
エイリアスを作成
bash
# バージョンのエイリアスを設定
fnm alias 20 default
fnm alias 18 legacy
fnm alias 16 oldエイリアスを使用
bash
# エイリアスでバージョンを切り替え
fnm use default
fnm use legacyエイリアスを削除
bash
fnm unalias legacy自動バージョン切り替え
fnm はプロジェクトディレクトリに基づいて Node.js バージョンを自動切り替えできます。
自動切り替えを有効化
Shell 設定に --use-on-cd を追加:
bash
eval "$(fnm env --use-on-cd)"バージョンファイルを作成
プロジェクトルートの .node-version または .nvmrc ファイルを作成:
bash
# .node-version を使用(推奨)
echo "20" > .node-version
# または .nvmrc を使用(nvm 互換)
echo "v18.17.0" > .nvmrcバージョンファイル形式
.node-version は以下の形式をサポートします:
20 # メジャーバージョン、最新の 20.x.x を使用
20.10 # マイナーバージョン、最新の 20.10.x を使用
20.10.0 # 正確なバージョン
lts/iron # LTS バージョン名バージョンファイル解析ストラテジー
fnm は 2 つのバージョンファイル解析ストラテジーをサポートします:
bash
# local(デフォルト)- 現在のディレクトリのみ検索
fnm env --version-file-strategy=local
# recursive - 親ディレクトリを再帰的に検索
fnm env --version-file-strategy=recursivepackage.json engines サポート
fnm は package.json の engines.node フィールドを読み取れます:
json
{
"engines": {
"node": ">=18.0.0"
}
}デフォルトで有効、環境変数で無効化できます:
bash
export FNM_RESOLVE_ENGINES=falseバージョン管理のベストプラクティス
1. プロジェクトレベルのバージョンロック
各プロジェクトに .node-version ファイルを作成:
bash
cd my-project
echo "20" > .node-version
fnm install
fnm use2. チームコラボレーション
.node-version を Git に追加:
bash
git add .node-version
git commit -m "chore: add .node-version"3. CI/CD 設定
CI/CD 環境で fnm を使用:
yaml
# GitHub Actions
- name: fnm をインストール
run: curl -fsSL https://fnm.vercel.app/install | bash
- name: Node.js をインストール
run: fnm install && fnm use4. マルチバージョン開発
bash
# 複数のバージョンをインストール
fnm install 20
fnm install 18
fnm install 16
# 切り替えやすいようにエイリアスを設定
fnm alias 20 current
fnm alias 18 legacy
fnm alias 16 old
# 異なるプロジェクトで異なるバージョンを使用
cd project-new && fnm use current
cd project-old && fnm use legacyバージョンをアンインストール
bash
# 特定のバージョンをアンインストール
fnm uninstall 16.20.2
# エイリアス経由でアンインストール(バージョンとすべての関連エイリアスを削除)
fnm uninstall oldよくある問題
バージョン切り替え後に node コマンドが更新されない
Shell 設定が正しいことを確認します:
bash
# node パスを確認
which node
# fnm ディレクトリを指している必要があります
# ~/.fnm/node-versions/.../bin/node自動切り替えが機能しない
- Shell 設定に
--use-on-cdが追加されていることを確認 - バージョンファイルが存在することを確認
- Shell 設定をリロード
バージョンファイルの優先順位
fnm は次の順序でバージョンを検索します:
- コマンドラインで指定されたバージョン
.node-versionファイル.nvmrcファイルpackage.jsonのengines.node- デフォルトバージョン
関連リンク
- Node.js をインストール - インストールガイド
- コマンドリファレンス - すべてのコマンドの詳細
- ダウンロード管理 - ダウンロード関連機能