ServBay を使ったプロジェクトごとの Node.js バージョン独立設定ガイド (macOS)
ServBay は開発者のために設計された強力なローカルWeb開発環境であり、Node.js を始めとしたさまざまなプログラミング言語・データベース・Webサーバーを統合したオールインワンソリューションを提供します。ServBay の大きな特徴のひとつが、マルチバージョンNode.js のネイティブサポートと柔軟な管理機能です。シンプルな設定ファイルを用いることで、各プロジェクトごとに必要な Node.js バージョンを指定でき、NVMやfnmなどの外部バージョン管理ツールやDockerのようなコンテナを使う必要がなくなります。そのため、ワークフローが簡潔になり、グローバル環境の汚染やバージョン競合を防ぐことができます。
この記事では、ServBay の .servbay.config
ファイルを活用して、プロジェクト単位で Node.js バージョンを管理する方法を詳しく解説します。
なぜ ServBay の .servbay.config
で Node.js バージョン管理を行うべきか?
従来のNode.jsバージョン管理(NVMの利用や手動インストールなど)には、以下のような課題があります。
- グローバル汚染・競合: システム全体にインストールしたり、グローバルバージョンを切り替えたりすると、プロジェクト間で依存関係の競合が発生しやすくなります。
- インストール・ビルドの煩雑さ: 新バージョンの導入や異なるアーキテクチャ(例: x86_64 と arm64)間の切り替え時に、モジュールの再ビルドが必要で手間・時間がかかります。
- Dockerコンテナのオーバーヘッド: 単に特定バージョンのNode.jsが欲しいだけの用途には、Dockerは重すぎる場合があります。
ServBayは、あらかじめ複数の主要なNode.jsバージョン(現時点でv12からv23までの全マイナーバージョンをサポート、ServBayアプリ「ソフトウェアパッケージ」から確認・管理可能)をプリインストールし、.servbay.config
ファイルと組み合わせて、よりスマートなソリューションを提供します。
- 即時切り替え: バージョンが事前に用意されているので、切り替えはほぼ瞬時に完了します。
- プロジェクトごとの分離: 設定ファイルは各プロジェクトディレクトリ内のみ有効、本当の意味でのプロジェクト単位分離を実現します。
- グローバル環境を汚さない: システム全体の設定を変更しないので、環境がクリーンなまま保たれます。
- ServBayとの統合: PHPやデータベース、Webサーバーなど他のパッケージともシームレスに協調動作します。
前提条件
始める前に、次の点を確認してください。
- macOSにServBayをインストールし、正常に起動していること。
- ServBayアプリの「パッケージ」(Packages)で、プロジェクトに必要なNode.jsバージョンが有効(ON)になっていること。
- 特定のNode.jsバージョンを指定したいプロジェクトディレクトリを用意していること。
コアの仕組み
ServBay統合ターミナル環境では、現在の作業ディレクトリを常時監視しています。cd
コマンドで任意ディレクトリに移動した際、現在ディレクトリおよび親ディレクトリを上方向に検索して .servbay.config
ファイルを探します。見つかれば(一番近いものが優先)、ファイル内容を読み取り、その設定に基づいて即座に環境変数(例: PATH
の変更)を動的に適用し、指定されたNode.jsバージョンのパスを有効化します。
このメカニズムによって、異なるプロジェクトディレクトリ毎に自動で指定されたNode.jsバージョンが有効となり、手動切り替えが不要になります。
設定手順
プロジェクトごとに独立したNode.jsバージョンを指定する方法は、たった2ステップです。
ステップ1:.servbay.config
ファイルを作成・編集
プロジェクトのルートディレクトリ(通常package.jsonがある場所)に、.servbay.config
という新しいファイルを作成します。
このファイルをお好みのテキストエディタで開き、例のように内容を記述してください。
# このプロジェクトで使うNode.jsのメジャーバージョンを指定
# ServBayはここで指定したメジャーの最新バージョンを自動選択します
NODE_VERSION=20
# 任意項目: npmやpnpmのレジストリミラー指定で依存インストールを高速化
# 中国本土等ネットワークの事情がある場合、国内ミラーを推奨
YARN_CONFIG_REGISTRY=https://npmreg.proxy.ustclug.org/
NPM_CONFIG_REGISTRY=https://registry.npmmirror.com
# 任意項目: npmまたはpnpmのキャッシュディレクトリ指定
# キャッシュはServBayの一時ディレクトリ内に格納推奨。システム容量やユーザーディレクトリの汚染防止
NPM_CONFIG_CACHE=/Applications/ServBay/tmp/npm/cache
2
3
4
5
6
7
8
9
10
11
12
設定項目の説明:
NODE_VERSION
: 必須。プロジェクトで必要なNode.jsのメジャーバージョンを指定します。例:20
→ ServBay内で利用可能な最新のNode.js 20.x系が選ばれます。事前に該当バージョンがインストール済みか確認してください。YARN_CONFIG_REGISTRY
/NPM_CONFIG_REGISTRY
: 任意。YarnやnpmのレジストリミラーURLを設定。主にネットワークが遅い場合の依存ダウンロード速度向上目的です。NPM_CONFIG_CACHE
: 任意。npmやpnpmのキャッシュディレクトリ指定。/Applications/ServBay/tmp/npm/cache
などServBayディレクトリ配下に置くと、キャッシュ管理が容易かつ他フォルダに散らかりません。
.servbay.config
ファイルを保存し、閉じてください。
ステップ2:ServBayターミナルで動作確認
ServBayアプリのホーム画面を開く。
「ターミナル」ボタンをクリックし、ServBay統合ターミナルを起動します。
ターミナル上で
cd
コマンドを使い、プロジェクトディレクトリへ移動します。bashcd /Applications/ServBay/www/your-project-name
1(
/Applications/ServBay/www/your-project-name
は実際のプロジェクトパスに置き換えてください)node -v
コマンドで現在有効なNode.jsバージョンを確認してください。bashnode -v
1出力は
.servbay.config
で指定したバージョン(例:v20.x.x
)になっているはずです。さらに
npm -v
(またはpnpm -v
,yarn -v
)でパッケージマネージャも現在の Node.js バージョンと正しく紐付いているか確認できます。
この状態で、該当プロジェクトディレクトリ内でNode.jsやnpm/pnpm/yarnコマンドを実行すれば、.servbay.config
で指定したバージョンおよびパッケージマネージャが使われます。
使用例
2つのプロジェクトで異なるNode.jsバージョンを自動切り替えする具体例を紹介します。
例えば project-a
は Node.js v18、project-b
は Node.js v20 を要求する場合です。
プロジェクトディレクトリ&設定ファイル作成:
bash# ServBayのwww配下に例プロジェクトディレクトリを作成 mkdir /Applications/ServBay/www/project-a mkdir /Applications/ServBay/www/project-b # project-a用: .servbay.configにNode.js v18を指定 echo "NODE_VERSION=18" > /Applications/ServBay/www/project-a/.servbay.config # project-b用: .servbay.configにNode.js v20を指定 echo "NODE_VERSION=20" > /Applications/ServBay/www/project-b/.servbay.config
1
2
3
4
5
6
7
8
9ServBayターミナルで切り替え検証:
ServBayターミナルで以下コマンドを試してみてください。
bash# project-aディレクトリへ移動 cd /Applications/ServBay/www/project-a # Node.jsバージョン確認 node -v # 期待出力: v18.x.x # project-bディレクトリへ移動 cd ../project-b # Node.jsバージョン確認 node -v # 期待出力: v20.x.x # 再度project-aディレクトリに戻る cd ../project-a # Node.jsバージョン確認 node -v # 期待出力: v18.x.x
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
この例のように、ServBayはカレントディレクトリごとに自動的に該当する.servbay.config
のNODE_VERSION
設定を読み込むため、Node.jsバージョンがシームレスに切り替わります。
下の図は、異なるプロジェクトディレクトリ間で.servbay.config
によるNode.jsバージョンの自動切り替え例です(図は一例で実際の画面とは異なる場合があります)。
ご注意
.servbay.config
ファイルはプロジェクトディレクトリまたはその親ディレクトリに配置する必要があります。ServBayは上位階層を順に検索し、最も近いファイルを使用します。- ServBay統合ターミナル、またはServBayの環境変数が正しく設定された外部ターミナルで作業してください。
NODE_VERSION
で指定するバージョンは、ServBayアプリ上であらかじめ「インストール&有効化」しておく必要があります。未インストール指定であれば、デフォルトにフォールバックorNode.jsが見つからない場合もあります。.servbay.config
の内容はそのターミナルセッションおよび子プロセスのみに影響し、システム全体や他のServBay外部環境のプロセスには波及しません。
よくある質問(FAQ)
Q: プロジェクトディレクトリに .servbay.config
が無かったらどうなりますか?
A: ServBayは、現在のディレクトリや親ディレクトリでも .servbay.config
が見つからなければ、グローバル設定またはデフォルトのNode.jsバージョン(通常は「デフォルト」マークのもの)を使います。
Q: ServBayで対応しているNode.jsバージョンを確認するには?
A: ServBayアプリで、左メニューの「パッケージ」(Packages)を開いてください。そこに利用可能&インストール済ソフトウェア一覧(各Node.jsバージョンも)が表示されます。チェックボックスのオンオフで有効/無効の切り替えが可能です。
Q: .servbay.config
の設定がシステム全体に影響しますか?
A: いいえ。設定はServBayターミナルまたはServBay環境変数が有効なプロセス内のみ一時適用され、システム全体の環境変数は変更されません。これがプロジェクト分離の大きなメリットです。
Q: NODE_VERSION
以外にも .servbay.config
で設定できますか?
A: はい、.servbay.config
はServBayにおけるプロジェクト単位の環境変数設定ファイルです。Node.js関連以外の環境変数もここに記述すれば、当該プロジェクトで実行するコマンドに適用されます。対応項目はアップデートで追加される可能性がありますが、環境変数のセットは基本機能です。
まとめ
ServBayの.servbay.config
ファイルを活用すれば、ローカル開発プロジェクトごとに独立したNode.jsバージョンを手軽かつ効率的に管理できます。従来のバージョン管理ツールやコンテナ方式よりも軽量で便利。ServBayの統合開発環境と完璧に連動し、安定的かつチーム開発にも理想的なワークフローを構築可能です。ぜひ、あなたのプロジェクトでも.servbay.config
を使ってServBayの快適さを実感してください!