awesome-hacks
Docs

package.jsonとは

package.jsonについて理解する

最終更新:2026/03/31

package.jsonを読み解く

package.jsonとは

プロジェクト名、バージョン、必要なライブラリ(依存関係)、実行スクリプトなどをJSON形式で記述
他の作業者が同じライプラリを使うための情報が記載される
npm installを実行すればpackage.jsonに定義されたバージョン、必要なライブラリ(依存関係)と同じものを一括でインストール

各プロパティ

たくさんの設定できる項目があるが、その多くは通常の開発では使用しない。
現時点(2026/3/31時点)ではよく使うもの以外は割愛(必要時に随時追記)

name

自分が作成したpackage.jsonを持つプロジェクト(パッケージ)をnpmに公開する時には、nameversionの組み合わせで完全に一意な識別子が生成される
パッケージ公開予定がない時は省略可能

version

変更した時は必ずバージョンも変更する
パッケージのnpm公開予定がない時は省略可能

description

割愛

keywords

割愛

homepage

割愛

bugs

割愛

license

割愛

author

割愛

funding

割愛

files

割愛

exports

割愛

main

割愛

browser

割愛

bin

割愛

man

割愛

directories

割愛

repository

割愛

private

private: true に設定すると、npm はそのパッケージの公開を拒否する
これは、プライベートリポジトリが誤って公開されるのを防ぐための仕組み。

特定のパッケージを特定のレジストリ(例えば、社内レジストリ)にのみ公開したい場合は、後述する publishConfig ディクショナリを使用して、公開時に registry config パラメータを上書きする必要がある。

scripts

パッケージのライフサイクルのさまざまな段階で実行されるスクリプトコマンドを ** 含む** 辞書。
キーには「ライフサイクルイベント名」、または「任意の呼び出し名」が指定され、値はその時点で実行するコマンド。

キーの種類

キーは以下の2種類に分かれる

ライフサイクルイベント名

名前タイミング
preinstallinstall前
installinstall中
postinstallinstall後
prebuildbuild前
buildビルド時
postbuildbuild後
  • 特徴

特定のタイミングで自動実行される

{
  "scripts": {
    "dev": "next dev",
    "build": "next build",
    "prebuild": "echo before build",
    "postbuild": "echo after build"
  }
}

にて、npm run buildを実行すると、下記結果になる

echo before build
next build
echo after build

任意のスクリプト名

  • dev
  • lint
  • format
  • start

特徴

npm run xxx でしか動かない

ライフサイクルについては公式ドキュメント - scriptsを参照。

config

割愛

dependencies

本番向けの依存関係。
アプリが動くために必要なものを記載

  • react
  • next
  • axios

devDependencies

開発向けの依存関係。
外部のテストフレームワークやドキュメントフレームワークなど、誰かがモジュールをダウンロードして自分のプログラムで使用する場合に必要のないものをこちらに記載する。
開発のときだけ必要なものを記載

  • typescript
  • eslint
  • biome
  • prettier

dependenciesdevDependenciesの違いと関係について

npm installすると、dependenciesdevDependenciesの両方に書かれているパッケージをすべてnode_modules内にインストールする。
npm install --productionした場合、またはパッケージXXXを公開し開発者以外がnpm install XXXした場合はdependenciesのパッケージだけがインストールされる

peerDependencies

割愛

peerDependenciesMeta

割愛

bundleDependencies

割愛

optionalDependencies

割愛

overrides

割愛

engines

割愛

os

割愛

cpu

割愛

devEngines

割愛

publishConfig

割愛

workspaces

割愛

参考

公式ドキュメント