開発・Git・設計の用語一覧へ
このページの目次

dependenciesとは?

読み方:dependencies

最終更新:2026/08/18

3秒でわかる

package.json に書く、本番の実行に必要な外部パッケージの一覧。誰がどこで入れても同じ構成を再現するための宣言です。

もう少し詳しく

どういうものか

Node.js のプロジェクトに置く package.json のフィールドで、そのアプリを動かすために必要な外部パッケージの名前と、許容するバージョンの範囲を並べます。npm install を実行すると、ここに書かれたものが node_modules 以下に展開されます。実際に入った正確なバージョンは package-lock.json に記録されるため、別のマシンでも同じ構成を再現できます。

なぜ必要か

外部ライブラリを手で配るとしたら、誰が何を入れたか分からなくなり、動く環境と動かない環境が生まれます。必要なものを宣言として一箇所に書いておけば、リポジトリを clone した人は install コマンド 1 つで同じ状態にできます。CIコンテナのビルドが成立するのもこの宣言があるからです。

具体例

{ "name": "myapp", "dependencies": { "express": "^4.19.2", "zod": "~3.23.8" }, "devDependencies": { "vitest": "^2.0.5", "typescript": "^5.5.4" } }
$ npm install express # dependencies に追加される $ npm install -D vitest # devDependencies に追加される $ npm ci # lock ファイルどおりに厳密に入れ直す $ npm install --omit=dev # 本番用。devDependencies を入れない

つまずきやすいところ

  • ^4.19.2 はメジャーを固定して 4 系の最新まで許す指定、~3.23.8 はパッチだけ許す指定です。範囲の意味を知らないまま install し直すと、意図せずライブラリが上がって壊れます。

  • node_modules はコミットしません。逆に package-lock.json は必ずコミットします。逆をやっている状態が事故の温床です。

  • TypeScript の型定義やビルドツールは devDependencies に入れます。ただしビルド後の実行時にも読み込まれるものを devDependencies に置くと、本番だけ起動しません。

  • ローカルで動くのに CI で落ちるときは、入れた記憶のあるパッケージが package.json に書かれていない (グローバルに入っている) 可能性を疑います。
  • 似た用語との違い

    フィールド入れるもの
    dependencies実行時に読み込むライブラリ
    devDependenciesテスト、型定義、ビルドツールなど開発時だけ使うもの
    peerDependencies利用側が用意する前提のライブラリ。プラグインで使う

    知識のつながり

    サイドバーと同じ推奨ルート・関連語を、まとめて確認できます。

    現在地dependencies開発・Git

    LEARN BY DOING

    この用語を、教材で使ってみる

    直接関連する編と、その編を含むコースです。用語だけで終わらず、ブラウザ上で実際に手を動かせます。

    Node.jsコースの全編を見る