2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

「npm install」とか「npm run dev」って何?

プログラミングを始めた方なら、一度は見たことがあるこのコマンド。
でも「npm」って一体何なのか、ちゃんと理解している人は意外と少ないかもしれません。

この記事では、npmとは何か何ができるのかどう使うのかを、初心者の方にもわかりやすく解説します!

npmとは? 3秒でわかる概要

npm(Node Package Manager) は、JavaScriptのパッケージ管理ツールです。

スマホのアプリストアをイメージしてください。

  • App StoreやGoogle Play → アプリをインストールする場所
  • npm → JavaScriptのライブラリやツール(パッケージ)をインストールする場所

つまり、npmは開発者がアプリケーションで利用するライブラリやコードのインストール、共有、管理をするためのJavaScriptパッケージマネージャーです。

npmの正式名称と歴史

正式名称

npmは元々「Node Package Manager」の略でしたが、誤解を招くとして後に変更され、現在は正式には略称ではありません。

ただし、多くの開発者は今でも「Node Package Manager」の意味で使っています。

簡単な歴史

  • 2010年: Node.jsと共に登場
  • 2016年: Yarn(Facebook製)が登場し、npmの課題を解決
  • 2020年: GitHub(Microsoft)がnpmを買収
  • 2025年現在: npm、yarn、pnpmの3つが主流

npmが解決する3つの問題

問題1: ライブラリを手動でダウンロードするのが面倒

npmがない世界

1. Reactの公式サイトに行く
2. ZIPファイルをダウンロード
3. 解凍してプロジェクトに配置
4. HTMLファイルに<script>タグを追加
5. バージョンアップの度に1〜4を繰り返す

npmがある世界

npm install react

たったこれだけ!

問題2: 依存関係の管理が複雑

例えば、あなたが「パッケージA」をインストールしたとします。でも実はこんなことが起きていたりします↓

パッケージA
├── パッケージB が必要
│   └── パッケージD が必要
└── パッケージC が必要
    └── パッケージE が必要

npmを使用することにより、パッケージ同士の依存関係や競合関係を解決してくれるメリットがあります。つまり、BもCもDもEも自動でインストールしてくれるんです!

問題3: チーム開発で環境が揃わない

Aさんのパソコン: Reactバージョン 17.0.0
Bさんのパソコン: Reactバージョン 18.0.0

→ これでは動かず、バグが起きることがあります!

npmはpackage.jsonというファイルで「このプロジェクトはReact 18.0.0を使います」と記録し、チーム全員が同じ環境で開発できるようにします。

Node.jsとnpmの関係

Node.jsとは?

JavaScriptは本来ブラウザでしか動かないプログラミング言語でしたが、Node.jsを使うことでパソコン上でも動かせるようになりました。

例えばこんなこと

  • サーバーの構築
  • ファイルの読み書き
  • データベースへの接続
  • コマンドラインツールの作成

npmとNode.jsの関係

Node.jsをインストールすると、npmも一緒についてきます。

つまり

Node.js (JavaScript実行環境)
└── npm (パッケージマネージャー)

両方セットで使うのが基本です!

npmでできること

1. パッケージのインストール

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

# 短縮形
npm i react

2. パッケージの削除

npm uninstall react

# または
npm remove react

3. パッケージの更新

# すべてのパッケージを更新
npm update

# 特定のパッケージのみ
npm update react

4. スクリプトの実行

# 開発サーバーを起動
npm run dev

# ビルド
npm run build

# テスト
npm test

5. プロジェクトの初期化

npm init

# すべてデフォルトで作成
npm init -y

6. セキュリティチェック

# 脆弱性をスキャン
npm audit

# 自動修正
npm audit fix

基本的なnpmコマンド一覧

コマンド 説明 使用例
npm init 新規プロジェクト作成 npm init -y
npm install package.json記載の全パッケージをインストール npm install
npm install <パッケージ名> 特定のパッケージをインストール npm install react
npm install -D <パッケージ名> 開発環境専用でインストール npm install -D eslint
npm install -g <パッケージ名> グローバル(PC全体)にインストール npm install -g typescript
npm uninstall <パッケージ名> パッケージを削除 npm uninstall react
npm update パッケージを更新 npm update
npm run <スクリプト名> package.jsonのスクリプトを実行 npm run dev
npm start startスクリプトを実行(省略形) npm start
npm test testスクリプトを実行 npm test
npm list インストール済みパッケージ一覧 npm list
npm outdated 古くなったパッケージを表示 npm outdated
npm audit セキュリティチェック npm audit
npm --version npmのバージョン確認 npm -v
npm help ヘルプ表示 npm help

package.jsonとは?

package.jsonは、プロジェクトの設定ファイルです。

実際の例

{
  "name": "my-awesome-app",
  "version": "1.0.0",
  "description": "素晴らしいアプリ",
  "main": "index.js",
  "scripts": {
    "dev": "vite",
    "build": "vite build",
    "test": "jest"
  },
  "dependencies": {
    "react": "^18.2.0",
    "react-dom": "^18.2.0"
  },
  "devDependencies": {
    "vite": "^5.0.0",
    "eslint": "^8.50.0"
  }
}

各項目の意味

  • name: プロジェクト名
  • version: バージョン番号
  • scripts: 実行できるコマンド(npm run devなど)
  • dependencies: 本番環境でも必要なパッケージ
  • devDependencies: 開発環境でのみ必要なパッケージ(テストツールなど)

バージョン番号の見方

"react": "^18.2.0"
  • ^18.2.0 → 18.x.xまでOK(マイナーアップデートは許可)
  • ~18.2.0 → 18.2.xまでOK(パッチのみ許可)
  • 18.2.0 → 完全に固定

node_modulesの正体

node_modulesとは?

npm installを実行すると、プロジェクトフォルダにnode_modulesというディレクトリが作られます。

my-project/
├── node_modules/    ← ここにすべてのパッケージが入る
│   ├── react/
│   ├── react-dom/
│   └── ... (数百〜数千個!)
├── package.json
└── package-lock.json

注意点

  • めちゃくちゃ重い: 数百MB〜数GB になることも
  • Gitにコミットしない: .gitignoreに必ず追加
  • 削除しても大丈夫: npm installで復元可能

なぜGitにコミットしないの?

  1. ファイル数が多すぎる(数万ファイル)
  2. 容量が大きい
  3. package.jsonがあれば誰でも復元できる

やること

# .gitignoreに追加
echo "node_modules/" >> .gitignore

npm vs yarn vs pnpm

JavaScriptやTypeScriptのプロジェクトでは、代表的な3つのパッケージマネージャー「npm」「yarn」「pnpm」があります。

3つの比較表

項目 npm yarn pnpm
リリース年 2009年 2016年 2017年
開発元 GitHub(Microsoft傘下) Meta(旧Facebook) 独立プロジェクト
インストール速度 普通 速い 超高速
ディスク使用量 多い 多い 最小
初期設定 不要(Node.js同梱) 要インストール 要インストール
モノレポ対応
2025年の人気度 依然として高い 普通 急上昇中

それぞれの特徴

npm

✅ Node.jsに標準搭載で環境構築が最も簡単
✅ 最も広く使われていて情報が多い
✅ シンプルで学習コストが低い
❌ 速度とディスク容量ではpnpmに劣る

yarn

✅ 高速インストール
✅ オフラインキャッシュ機能
✅ モノレポ(ワークスペース)に強い
❌ Yarn 2以降は仕様が大きく変わった
❌ 新規プロジェクトでの採用は減少傾向

pnpm

✅ ディスク使用量を最大80%削減
✅ シンボリックリンクでパッケージを共有し、GBレベルの容量を節約
✅ Next.js、Vite、Nuxt、Astro、Prismaなどが2022-24年に移行
✅ 厳密な依存関係管理でバグを防ぐ
❌ まだnpmほど普及していない
❌ 一部の古いツールで互換性問題の可能性

おすすめ

個人開発や小規模プロジェクト、学習目的: pnpmを第一候補として推奨。ディスクスペースの節約とインストール速度は開発体験を大きく向上させます。

チーム開発や既存プロジェクト: プロジェクトで使われているツールに従うのが鉄則。package-lock.jsonがあればnpm、yarn.lockがあればyarn、pnpm-lock.yamlがあればpnpmを使います。

初心者の方: 私含め初心者の方であれば、まずはnpmから始めるのが無難です。Node.jsに標準で入っているので環境構築が簡単です。

まとめ

npmを一言で説明すると

「JavaScriptのライブラリを簡単にインストール・管理できるツール」

覚えておきたい重要ポイント

  1. npmはNode.jsと一緒に入ってくる → 別途インストール不要
  2. package.jsonがプロジェクトの設計図 → これが最重要
  3. node_modulesはGitに入れない → .gitignoreに追加
  4. 依存関係は自動で解決してくれる → 深く考えなくてOK
  5. 2025年はpnpmも選択肢に入れよう → 高速で容量節約

次のステップ

npmの基礎を理解したら、次はこれらにチャレンジ:

  1. npm scriptsを書いてみるnpm run devなどを自作
  2. 人気パッケージを試す → React、Express、Viteなど
  3. 自分のパッケージを公開 → npmレジストリに登録
  4. pnpmに挑戦 → 高速化を体感

参考リンク

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?