プロジェクトごとにNode.jsの環境を変える!nvmの活用で開発効率アップ


プロジェクトごとにNode.jsの環境を変える!nvmの活用で開発効率アップ

nvm-sh/nvm

2025-10-15

専門用語はあまり気にせず、このツールがどう便利で、どう使えば良いのかを、分かりやすくご説明しますね!

「nvm-sh/nvm」は、「Node Version Manager」の略で、Node.jsというプログラムの実行環境のバージョンを管理するためのツールです。

Node.jsは、Webサイトの裏側(サーバーサイド)の処理や、フロントエンドのツール(ビルドツールなど)で非常によく使われます。しかし、Node.js自体もどんどん新しくなっていて、バージョンがたくさんあります。

困ることnvmで解決!
複数のプロジェクトを掛け持ちしているとき、プロジェクトAは古いNode.js(例:v14)でしか動かない、プロジェクトBは新しいNode.js(例:v20)じゃないと動かない、なんてことがよくあります。nvmがあれば、コマンド一つで**「今からプロジェクトAのv14を使うぞ!」「次にプロジェクトBのv20に切り替えるぞ!」**と、簡単にバージョンを入れ替えられます。
新しいバージョンのNode.jsを試してみたいけど、今動いている環境を壊したくない。nvmなら、既存の環境に影響を与えず、新しいバージョンを**「インストールだけ」して、試すときだけ「切り替えて」**使えます。

つまり、複数のバージョンを安全かつ手軽に使い分けられるのが最大のメリットです。将来、プロのエンジニアとして働く上で、ほぼ必須のツールだと思って間違いありません!

nvmは、MacやLinuxでよく使われる「ターミナル」(コマンドライン)から操作します。

以下のコマンドをターミナルに貼り付けて実行します。これは、nvmのインストールスクリプトをダウンロードして実行するコマンドです。

# nvmの最新バージョンをインストール
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash

注意点 上記のv0.39.7の部分は、nvmの最新バージョンに合わせて変わることがあります。不安な場合は、で最新のインストール方法を確認しましょう。

インストール後、ターミナルを再起動するか、以下のコマンドを実行して設定を読み込みます。

# シェル(bashやzshなど)の設定ファイルを再読み込み
source ~/.bashrc  # bashを使っている場合
# または
source ~/.zshrc   # zshを使っている場合(Macの標準はこちらが多い)

nvmが正しくインストールされたか、バージョン番号を表示するコマンドで確認します。

command -v nvm

もしnvmと表示されれば成功です!

いよいよnvmを使ってNode.jsを管理する具体的なコマンドを見てみましょう。

LTS(Long Term Support
長期サポート版)は、安定していて推奨されるバージョンです。

# 推奨されている最新のLTSバージョンをインストール
nvm install --lts

# 特定のバージョン(例: v18.18.2)を指定してインストール
nvm install 18.18.2

# 別の特定のバージョン(例: v20.9.0)もインストール
nvm install 20.9.0

今、自分のパソコンにどのバージョンのNode.jsが入っているかを確認できます。

nvm ls

【表示例】

        v18.18.2
->      v20.9.0
         system
default -> 20.9.0 (-> v20.9.0)
node -> stable (-> v20.9.0) (default)
iojs -> N/A (default)

-> が付いているのが、現在使用しているバージョンです。

これが一番よく使う、nvmの魔法のコマンドです!

# バージョン v18.18.2 に切り替え
nvm use 18.18.2

# バージョン v20.9.0 に切り替え
nvm use 20.9.0

このコマンドを打つだけで、すぐにNode.jsのバージョンが切り替わります。

defaultに設定しておくと、新しくターミナルを開いたときに、自動でそのバージョンが使われるようになります。

# v20.9.0 を今後のデフォルトに設定
nvm alias default 20.9.0

nvm-sh/nvm




あなたのサービス品質向上に貢献:qeeqbox/social-analyzer導入とAPI連携の具体例

このツールは、指定されたユーザー名が、1000以上のソーシャルメディアやウェブサイトで利用されているかどうかを、効率的かつ広範囲にわたって調査・分析するためのものです。Node. js、JavaScript、Pythonに対応しており、API、CLI(コマンドラインインターフェース)、そしてウェブアプリとして利用できます。


開発効率爆上げ!Lissy93/Dashyで自分だけのダッシュボードを作ろう

やあ!みんな元気?ミッキーマウスだよ!今日はね、みんながもっとハッピーに、そしてもっとスマートにお仕事ができるようになる、とっておきのツールを紹介するよ!その名も「Lissy93/Dashy」!わんだふる!Dashyはね、自分でホストできるパーソナルダッシュボードなんだ!まるで自分だけの秘密基地みたいに、必要な情報やツールをぎゅっと詰め込めるんだよ。ソフトウェアエンジニアのみんなにとって、これがどれだけ便利か、ミッキーがよーく知ってるからね!


PythonとNode.jsの力を解き放つ。ByteDanceのオープンソース「Deer-flow」でエージェント開発を加速させる

エンジニアの視点で見ると、これって「ただのチャットAI」とは全然別物。まるで、一歩先を読んで複雑な家事(仕事)を全部片付けてくれる、すごく有能な執筆・開発パートナーって感じかな。「どれが一番似合うかな?」って水着選びで迷うみたいに、Deer-flowの可能性を一緒に探っていこう!


DevOps時代のDNS管理:serverless-dnsを活用したインフラストラクチャ・アズ・コード実践術

Serverless DNSは、一言でいうと「サーバーレスな環境で動作する、自分専用の高性能なコンテンツフィルタリング機能付きDNSリゾルバー」です。「Pi-Hole」という有名な広告ブロック機能付きのローカルDNSサーバーがありますが、Serverless DNSは、その機能をエッジコンピューティングのプラットフォーム(Cloudflare Workersなど)上に展開できるようにしたものです。


パスワード管理に終止符を! Bitwarden/clientsの導入と活用

登場人物ルパン三世 最新技術に弱い天才泥棒。次元大介 寡黙で頼れる相棒。石川五右衛門 パスワードを毎回手打ちする律儀な剣士。銭形警部 フィッシング詐欺メールに引っかかりがちな捜査の鬼。場所 とあるアジト【コントの始まり】ルパン 「ようし、今夜のターゲットは世界銀行の機密データだぜ!次元、準備はいいか?」


【徹底解説】AIOS-Core v4.0:フルスタック開発をAIに「おまかせ」する方法

今回のお客さまが持ち込まれた SynkraAI/aios-core、これはいわゆる「AIが主導するフルスタック開発」のためのエンジンです。エンジニア視点で見ると、単なるライブラリというよりは、「AIに開発のハンドルを握らせるための指令塔」といった趣ですね。


もうリモートを意識しない。XPipeで実現するシームレスなサーバー管理術

お前、散らばったサーバーの鍵(SSHキー)や、どこにあるかもわからねぇDockerコンテナ、それにKubernetesのクラスターの管理で、頭がパンクしそうになってるんだろ?俺たち「裏のエンジニア」にとっちゃ、証拠を残さず、素早く、スマートにターゲット(サーバー)へ潜り込むのが鉄則だ。そこで使えるのが、この 「XPipe」 って代物さ。


Webエンジニア必見!ytDownloaderから学ぶ「動画解析とデータ処理」の実用的なアプローチ

恋がそうであるように、このツールとの出会いも、あなたのエンジニアライフを豊かにする可能性がありますよ!この「aandrew-me/ytDownloader」は、単なるダウンローダーというだけでなく、「Electron」「Node. js」「JavaScript」という、現代のフロントエンド・バックエンド技術を組み合わせた「デスクトップアプリケーション開発」の教材であり、ソリューションの塊です。


より良いNode.js開発のために:nodebestpracticesを読み解く

Node. js開発の「ゴールドスタンダード」とも言える、goldbergyoni/nodebestpracticesという素晴らしいガイドについて、ソフトウェアエンジニアの視点から、キャンプ場の設営になぞらえて、分かりやすくご説明しますね。


開発効率を数十倍に!Bundler/Test Runner/Package Managerを統合した「Bun」徹底解説

今回は、密室殺人事件ドラマのコントのように、すべての謎を一つで解決してしまうような、オールインワンのJavaScriptツールキット、それが「Bun(ブン)」です。Bunは、ウェブ開発の現場で日々直面する様々な課題を、一つのツールで高速かつ効率的に解決するために設計された、新しいJavaScriptランタイムです。