【保存版】npmとnpxの使い分け、もう迷わない。PCを汚さずに開発環境をクリーンに保つ方法。
はじめまして、ryotaと申します。
AIの面白さにのめり込み、プログラミングに再挑戦し始めた40歳の僕が、最初にぶつかった大きな壁。それが、npm と npx という、呪文のようなコマンドでした。
チュートリアル動画を見ながら、よく分からないままコマンドをコピペする日々。特に、npxで何かを実行しようとするたびに「インストールしますか?」と聞かれ、「あれ?一時的に実行するだけじゃなかったの?」と、心のモヤモヤが募っていく…。
「PCに変なものがインストールされて、環境が汚れるのは絶対に嫌だ!」
「そもそも、この2つの違いが分からないまま進むのが気持ち悪い!」
この記事は、そんな数ヶ月前の僕と同じように、遠回りしている感覚や、独学の限界を感じているあなたのために書きました。一緒に、この「モヤモヤ」をスッキリ晴らしましょう!
🧩 まず前提:Node.jsは「キッチン」、npmとnpxは「料理人」
Node.jsの世界には、たくさんの便利な「部品」や「道具」(パッケージ)があります。これらを上手に使いこなすための「管理人さん」と「実行係」が、npmとnpxです。
Node.js: あなたのPCでJavaScriptを動かすための「エンジン」。これをインストールすると、下の2つも自動でついてきます。
npm(Node Package Manager): パッケージを「管理する」ためのツール。あなたのプロジェクトに必要な部品をインストールしたり、更新したりする「冷蔵庫に食材をストックする係」です。
npx(Node Package eXecute): パッケージを「実行する」ためのツール。特に、まだインストールしていない道具でも、一時的に借りてきてすぐに動かしてくれる「出張料理人」のような存在です。
例えるなら、Node.jsが「キッチン」だとすると、npmは冷蔵庫の在庫管理、npxは「この料理のためだけに、あの高級スパイスをちょっとだけ借りてきて!」とお願いできる、凄腕の助っ人というイメージです。
💡 1. npmとは?「プロジェクトの冷蔵庫を管理する人」
npmは、主にあなたのプロジェクトで「何度も繰り返し使う部品(パッケージ)」を管理するために使います。
npmの役割
パッケージのインストール・管理
プロジェクトに必要なパッケージ(例:Webサイトを作るためのExpressなど)を、プロジェクトフォルダ内にあるnode_modulesという特別な倉庫にインストールします。
これは、あなたのラーメン屋で「麺」や「スープ」といった毎回使う材料を、お店の倉庫にきちんと仕入れておくようなものです。code Bash
downloadcontent_copyexpand_less
# ExpressというWebフレームワークをインストール npm install express
スクリプトの実行
package.json(後述します)という設計図に書かれた手順を実行できます。ラーメン屋で「営業開始!」の合図で、お店の人が「スープを温める」「麺を茹でる」といった決まった手順を一気に実行するイメージです。code Bash
downloadcontent_copyexpand_less
# package.jsonに定義されたstartスクリプトを実行 npm run start
package.jsonって何?
package.jsonは、あなたのプロジェクトの「レシピ兼設計図」です。プロジェクト名や、どんなパッケージ(材料)を使っているか、などが書かれています。
これさえあれば、他の人があなたのプロジェクトを手伝うときも、同じ環境をすぐに再現できます。
⚡ 2. npxとは?「一度だけ道具を借りてくる出張料理人」
npxは、主に「一度だけ使いたいツール」や「プロジェクトの初期設定に使うツール」を実行するために使われます。npmとは違い、わざわざプロジェクトの倉庫(node_modules)に永続的にインストールしないのが最大の特徴です。
npxの役割
未インストールのパッケージを一時的に実行
あなたのPCにないパッケージでも、npxが自動で一時的にダウンロードして実行し、終わったらきれいさっぱり片付けてくれます。
これは、普段は使わないけど「今だけちょっと特殊な工具を借りたい」という時に、ホームセンターでレンタルしてきて、使い終わったらすぐ返すイメージ。自分の家に不要な工具をため込まずに済みますよね。code Bash
downloadcontent_copyexpand_less
# Reactアプリのひな形を「一度だけ」作ってもらう npx create-react-app my-app
「インストールしますか?」のモヤモヤ、完全解消!
「npxで実行したのに『インストールしますか?』って聞かれた!」
僕もこれが一番気持ち悪かったのですが、正体はこうです。
これは「(あなたのPCには見当たらないので)インターネットから一時的にダウンロードして実行していいですか?」という意味です。
あなたのプロジェクトフォルダが汚れるわけではなく、npxが管理する一時保管場所にダウンロードされるだけ。
だから、安心して「Yes」と答えて大丈夫です。永続的にゴミが増えるわけではありません。
🧠 3. npmとnpx、賢い使い分けのコツ!
では、どんな時にどっちを使えばいいのか?あなたのPC環境をクリーンに保つための「黄金ルール」を紹介します。
大原則
npm: プロジェクトで何度も繰り返し使う道具は、ちゃんと倉庫に入れておく(インストールする)。
npx: 一回だけ使いたい道具や、お試しで使いたい道具は、その場で借りてすぐ返す(一時実行する)。
【保存版】もう迷わない!npm / npx 使い分けチェックリスト
✅ こんな時は npx を使おう!(一時的な実行)
新しいプロジェクトの"雛形"を作りたい時
コマンド例: npx create-react-app my-app
理由: 雛形作成ツールは、プロジェクトを1回作ったらもう不要だから。
ちょっとした便利ツールを一度だけ試したい時
コマンド例: npx cowsay "Hello!"
理由: PCを汚さずに、手軽にお試し実行したいから。
特定のバージョンを一時的に試したい時
コマンド例: npx eslint@8.4.0 .
理由: 他のプロジェクトに影響を与えずに、特定のバージョンを検証したいから。
✅ こんな時は npm を使おう!(プロジェクトへのインストール)
開発中に何度も使うライブラリを導入する時
コマンド例: npm install react
理由: アプリを動かすための「心臓部」や「骨格」になる部品だから。
チーム開発で使うコードチェックツールなどを導入する時
コマンド例: npm install eslint --save-dev
理由: チーム全員で同じバージョンのルールを共有し、常に使い続けたいから。
開発サーバーを起動したり、テストを実行する時
コマンド例: npm run dev
理由: 開発中、何度も繰り返し実行する決まった手順だから。
開発フローで見てみよう(Reactアプリを例に)

このフロー図からもわかるように、npxは「アプリを作る最初の一歩」に使い、その後の開発や本番運用ではnpmが主役となります。
🎯 おわりに

npmとnpxの違い、少しはモヤモヤが晴れたでしょうか?
僕のような非エンジニア出身者にとって、黒い画面(ターミナル)でコマンドを打つのは、それだけで少し緊張しますよね。でも、一つ一つのコマンドの意味が分かると、それは「呪文」から「便利な魔法」に変わります。
「PC環境をクリーンに保ちたい」というあなたの思いは、効率的で再現性の高い開発環境を築くための、とても大切な感覚です。
このAI時代、必要なのは特別な才能ではなく、AIやツールと対話しながら、一つずつ「なるほど!」を積み重ねていく力だと僕は信じています。
最後に、あなたに質問です。
あなたも僕と同じように、npmやnpxでモヤモヤした経験はありませんか? もしよければ、あなたが他に「これって何?」と迷ったコマンドがあれば、ぜひコメントで教えてください。
この記事が「役に立った!」「モヤモヤが晴れた!」と感じていただけたら、「スキ」や「保存」で応援していただけると、次の記事を書く大きな励みになります!
一緒に学び、AI時代を乗りこなしていきましょう!
