開発をしていると、
npm install
npm run dev
npx create-next-app
npx prisma migrate devなど、npmやnpxから始まるコマンドをよく目にします。
私もこれまでは、「パッケージをインストールするときはnpm」「何か実行するときはnpx」という程度の認識で、言われた通りに入力しているだけでした。
しかし、ある日ふと
「そもそもnpmとnpxって何なんだろう?」
と思うようになりました。
意味が分かるようになると、ただコマンドをコピーして使うだけではなく、「今何をしているのか」を理解しながら使えるようになります。
今回は、初心者向けにnpmとnpxの意味や違いについて整理してみます。
npmとは?
npm(Node Package Manager)は、Node.jsで使用するパッケージを管理するためのツールです。
主に、
- パッケージをインストールする
- パッケージを削除する
- パッケージを更新する
- package.jsonに登録されたスクリプトを実行する
といった役割があります。
よく見るnpmコマンド
npm install
npm install axios
npm install -D typescript
npm uninstall axios
npm run dev
npm run build
npm run lint
npm update
これらはすべてnpmのコマンドです。
コマンドを分解してみる
例えば、以下のコマンドを分解します。
npm install axiosnpm:Node Package Manager を呼び出すinstall:インストールを実行するaxios:インストールするパッケージ名
つまり、「npmを使ってaxiosというパッケージをインストールする」という意味になります。
もう一つ例を見てみます。
npm run devnpm:Node Package Manager を呼び出すrun:package.jsonのscriptsを実行するdev:実行するスクリプト名
package.json の中に以下のような記述があれば、
"scripts": {
"dev": "next dev"
}npm run dev を実行することで、内部的に next dev が呼び出されます。
npxとは?
npx(Node Package Execute) は、パッケージに含まれているコマンド(CLIツール)を実行するためのツールです。
インストール済みのパッケージだけでなく、一時的にパッケージをダウンロードして実行することもできます。
npx の大きな特徴
- ローカルの
node_modulesにあるコマンドを直接実行できる 通常、ローカルにインストールしたツールのコマンドはパスが通っていませんが、npx を使うと簡単に実行できます。 - PCにグローバルインストール(
-g)せずに、一時的にダウンロードして実行できる プロジェクト作成ツールなど、1回しか使わないツールをPCを汚さずに最新版で実行できます。
よく見るnpxコマンド
npx create-next-app
npx prisma migrate dev
npx prisma generate
npx eslint .
npx tailwindcss init
npx shadcn@latest add button
開発をしていると、このようなコマンドをよく見かけます。
コマンドを分解してみる
例えば、以下のコマンドを分解します。
npx prisma migrate devnpx:パッケージのコマンドを実行するprisma:実行したい CLI ツール名(Prisma)migrate dev:Prisma CLI に渡すサブコマンド(開発用マイグレーション実行)
つまり、「プロジェクト内にある Prisma のコマンドを呼び出してマイグレーションを実行する」という意味になります。
もう一つ見てみましょう。
npx create-next-app my-appまた、npx create-next-app my-app の場合は、
npx:一時的にパッケージをダウンロードして実行するcreate-next-app:Next.js のプロジェクト作成ツールmy-app:作成するプロジェクト名
つまり、「PCに常駐させず、最新の create-next-app を一時的に取得して my-app というプロジェクトを作成する」という意味になります。
npmとnpxの違い
ここまで見てきた内容をまとめると、違いは次のようになります。
| 項目 | npm | npx |
|---|---|---|
| 主な役割 | パッケージを管理する | パッケージのコマンドを実行する |
| よく使う場面 | インストール・削除・更新 | CLIツールの実行 |
| 代表例 | npm install axios | npx prisma migrate dev |
| イメージ | 「道具を準備する」 | 「道具を使う」 |
例えばPrismaなら、
npm install prismaPrismaをインストールするためのコマンドです。
一方、
npx prisma migrate devインストールされたPrismaを使ってマイグレーションを実行するためのコマンドです。
このように、
- npm = パッケージを管理する
- npx = パッケージのコマンドを実行する
と覚えておくと、今まで何となく使っていたコマンドの意味が理解しやすくなると思います。
終わりに
今回は、普段何気なく使っていたnpmとnpxについて整理してみました。
コマンドを意味ごとに分解して考えてみると、「何を実行しているのか」が分かり、理解がぐっと深まったように感じます。
これまでは「どっちを使えばいいんだっけ?」と迷うこともありましたが、意味を理解したことで、今後は自信を持って使えそうです。
私と同じように、なんとなくnpmやnpxを使っていた方の参考になれば嬉しいです。

