1-3. npmとは何か
更新日:2025年12月7日
※画像は生成AIによるイメージです。
npm(Node Package Manager)は、JavaScriptの世界における「パッケージ管理システム」です。 ライブラリのインストール、更新、削除を簡単に行えるツールで、現代のJavaScript開発には欠かせません。
npmの基本概念
npmは3つの要素から構成されています:
- npmレジストリ:世界中のパッケージが登録されているデータベース
- npmウェブサイト:パッケージを検索・閲覧できるサイト
- npmコマンドラインツール:パッケージを管理するためのツール
パッケージとは
パッケージは「配布用にまとめられたコード」です。ライブラリ、フレームワーク、ツールなどが含まれます。 各パッケージには名前とバージョンがあり、依存関係も管理されています。
パッケージの例
「express」というパッケージをインストールすると、Webサーバーを構築するための機能がすべて手に入ります。
基本的なコマンド
| コマンド | 機能 | 使用例 |
|---|---|---|
| npm init | プロジェクトの初期化 | package.jsonの作成 |
| npm install | パッケージのインストール | npm install lodash |
| npm update | パッケージの更新 | npm update lodash |
| npm uninstall | パッケージの削除 | npm uninstall lodash |
package.jsonファイル
package.jsonは「プロジェクトの設定書」です。 プロジェクトの情報と使用するパッケージのリストが記載されています。
{
"name": "my-project",
"version": "1.0.0",
"description": "プロジェクトの説明",
"dependencies": {
"express": "^4.18.0",
"lodash": "^4.17.21"
},
"devDependencies": {
"webpack": "^5.75.0"
}
}
依存関係の種類
- dependencies
- 本番環境で必要なパッケージ。アプリケーションの動作に必須
- devDependencies
- 開発時のみ必要なパッケージ。テストツールやビルドツールなど
- peerDependencies
- 一緒に使うことを想定したパッケージ。プラグインなどで使用
node_modulesフォルダ
インストールしたパッケージは「node_modules」フォルダに保存されます。 このフォルダは巨大になることが多く、通常はバージョン管理から除外します。
- 数千~数万のファイルが含まれることがある
- .gitignoreでGit管理から除外する
- package.jsonがあれば再現可能
バージョン管理
npmはセマンティックバージョニング(SemVer)を採用しています。
| 記号 | 意味 | 例 |
|---|---|---|
| ^ | マイナーバージョンまで更新可 | ^4.18.0 → 4.19.0はOK、5.0.0はNG |
| ~ | パッチバージョンまで更新可 | ~4.18.0 → 4.18.1はOK、4.19.0はNG |
| なし | 完全一致 | 4.18.0 → 4.18.0のみ |
グローバルインストール
ツール系のパッケージは、システム全体で使えるようにグローバルインストールすることがあります。
# グローバルインストール
npm install -g typescript
# ローカルインストール(通常)
npm install lodash
npmの利点
- 一元管理:すべてのパッケージを一つのファイルで管理
- 自動解決:依存関係を自動的に解決
- バージョン固定:package-lock.jsonで厳密なバージョン管理
- スクリプト実行:npm scriptsで作業を自動化
- 巨大なエコシステム:200万以上のパッケージが利用可能
まとめ
npmはJavaScript開発の中核を担うツールです。 パッケージの管理を自動化し、開発効率を大幅に向上させます。 次のページでは、CDNとnpmの使い分けについて学習します。
本コンテンツは2025年12月時点の情報に基づいて作成されている。最新の情報については公式ドキュメントを参照されたい。