できない.dev

package.json

別名: パッケージジェイソン / npm manifest / パッケージマニフェスト

package.json は npm がプロジェクトのメタ情報と依存関係、npm scripts を記述する JSON 形式のマニフェストファイル。
name と version が必須で、依存やスクリプトの起点になる。

公開:

定義

package.json は、npm が管理する JavaScript / Node.js プロジェクトの中心となるマニフェストファイルである。
プロジェクト名やバージョン、依存パッケージ、実行スクリプトなどを JSON 形式で記述し、npm installnpm run の動作はすべてこのファイルを起点とする。
プロジェクトのルートに 1 つ置く。

詳細

nameversion が必須フィールドで、この 2 つでパッケージを一意に識別する。dependencies / devDependencies に依存パッケージとそのバージョン範囲を書き、npm install がそれを解決して node_modules に展開する。scripts に定義したコマンドは npm run <名前> で呼び出せる。
npm だけでなく yarn や pnpm も同じ package.json を読むため、パッケージマネージャをまたいで共通の設定になる。

よくある誤解

package-lock.json と混同されやすいが役割は別である。package.json は「どのバージョン範囲を許すか」という宣言で、package-lock.json は「実際に入れた正確なバージョン」を固定する。
手で編集してよいのは前者であり、後者は npm が自動生成する。

関連

依存の固定についてはLockfile、展開先についてはnode_modulesを参照。
スクリプトが見つからないときはnpm run で Missing script エラーが出てスクリプトを実行できないが近い。