← 用語集一覧へ戻る

npm

npm
development tool beginner
Node.js向けのパッケージ管理ツールで、ライブラリのインストールやプロジェクトの依存関係を管理する仕組みのこと。
npm (npm)

概要(サマリー)

npmとは、Node.jsに付属するパッケージ管理ツールのことである。

Web開発では「他の人が作ったライブラリやツールを自分のプロジェクトに追加して使う」という場面が非常に多い。npmはその際に「どのライブラリを使うか」「何バージョンを使うか」を一元管理してくれる仕組みだ。npm install というコマンド1つで必要なパッケージを自動でダウンロードしてくれるため、開発のスタートが格段に速くなる。

詳細解説

npm とは何か

npmはNode.jsをインストールすると自動的についてくるコマンドラインツールだ。「Node.js向けの標準的なパッケージ管理ツール」という理解が基本だが、実際にはNode.js以外のWebフロントエンド開発全般で広く使われている。

世界中の開発者が作ったライブラリがnpmのレジストリ(npmjs.com)に公開されており、2024年時点で200万以上のパッケージが登録されている。

基本的なコマンド

npmはターミナル上でコマンドを打って使う。

# パッケージをインストールする
npm install パッケージ名

# 例: Reactをインストール
npm install react

# 開発用パッケージをインストール(本番ビルドには含まれない)
npm install --save-dev パッケージ名

# package.json に記載された全パッケージを一括インストール
npm install

# プロジェクトを起動する(package.json の scripts に定義)
npm run dev
npm run build
npm run start

package.json とは

npmを使うプロジェクトには必ず package.json というファイルがある。このファイルがプロジェクトの「設計書」のような役割を果たす。

{
  "name": "my-app",
  "version": "1.0.0",
  "scripts": {
    "dev": "vite",
    "build": "vite build",
    "start": "node server.js"
  },
  "dependencies": {
    "react": "^18.2.0"
  },
  "devDependencies": {
    "vite": "^5.0.0"
  }
}
  • scripts: npm run dev などのコマンドを定義する
  • dependencies: 本番環境で必要なパッケージ一覧
  • devDependencies: 開発時のみ必要なパッケージ一覧(テストツール、ビルドツールなど)

node_modules と .gitignore

npm install を実行すると、プロジェクトフォルダ内に node_modules というフォルダが作られ、インストールしたパッケージのファイルがすべて格納される。このフォルダは非常に大きくなるため、Gitには含めないのが慣習だ。

.gitignorenode_modules/ を追加しておけば、Gitの管理対象から除外される。別の環境でプロジェクトを動かすには npm install を実行すれば package.json をもとに同じパッケージが再インストールされる。

npm vs pnpm vs yarn

npmと同じ目的のツールに pnpmyarn がある。

ツール 特徴
npm Node.jsに標準付属。最も広く使われている
yarn Facebook発。npmより高速だった(現在は差が縮まった)
pnpm ディスクスペースを節約する仕組みで近年人気が高い

AIに開発環境の構築を依頼するとき、どのパッケージマネージャーを使うかを明示すると混乱が減る。

AIコーディングとの関係

AIがWebアプリのコードを生成するとき、ほぼ必ずと言っていいほどnpmのコマンドが登場する。「まず npm install して、npm run dev で起動する」という手順の意味がわかっていると、AIの指示通りに動かせる。

AIへの効果的な指示の例:
- 「Reactプロジェクトを作成するコマンドを教えてください(npm使用)」
- 「このエラーは依存関係の問題だと思いますが、package.jsonを見て原因を教えてください」
- 「npm run build をすると○○というエラーが出ます。対処法を教えてください」
- 「pnpmでこのプロジェクトをセットアップする手順を教えてください」

依存関係の管理はセキュリティにも関わる。古いパッケージに脆弱性が見つかることがあるため、npm audit というコマンドで脆弱性チェックもできる。

よくある勘違い

npm install で全部動く?

npm install をしても動かない場合がある。Node.jsのバージョンが要件を満たしていない、環境変数(.env ファイル)が設定されていない、などが原因として多い。エラーメッセージをAIに貼り付けて確認してもらうと早く解決しやすい。

node_modules はGitに含めるべき?

含めるべきではない。node_modulesnpm install で再生成できるため、Gitに含めるとリポジトリが巨大になってしまう。.gitignorenode_modules/ が記載されているか確認しよう。

dependencies と devDependencies はどう違う?

dependencies は本番環境でも必要なパッケージ(React、ライブラリなど)、devDependencies は開発時のみ必要なパッケージ(テストツール、リンターなど)だ。npm install でどちらに入れるかは --save-dev フラグの有無で決まる。サーバー上での本番ビルドでは devDependencies は省略されることがある。

まとめ

  • npmはNode.jsに付属するパッケージ管理ツールで、ライブラリのインストールや依存関係の管理を担う
  • npm install でパッケージを取得でき、package.json でプロジェクトのパッケージと設定を管理する
  • node_modules フォルダはGitに含めず、.gitignore で除外するのが一般的
  • npm以外にも pnpm・yarn などの選択肢があるが、動作の考え方は共通
  • AIにWeb開発の質問をすると必ずnpmコマンドが登場するため、基本的なコマンドは覚えておくと役立つ

情報ソース

より詳しくAIに聞いてみよう

  • npm とは何かを、初心者でもわかるように説明してください。
  • package.json の dependencies と devDependencies の違いを教えてください。
  • npm・yarn・pnpmの使い分けを、現在のトレンドを踏まえて説明してください。
  • npm install 後に起動できないときのよくある原因と確認手順を教えてください。
  • AIに「このnpmのエラーを直して」と伝えるとき、より良い情報の渡し方を教えてください。