パッケージと依存関係
誰もアプリをまるごとゼロから書いたりはしません。難しくてありふれた問題——日付の整形、決済の処理、カレンダーの描画——は、すでにほかの人たちによって解決され、パッケージにまとめられています。パッケージとは、自分で書く代わりにプロジェクトに取り込む、再利用可能なコードのかたまりです。プロジェクトの依存関係(dependencies)とは、それが頼りにしているパッケージの一覧です。
JavaScriptの世界でこれを管理するツールが npm(Node Package Manager)です。2つのファイルが帳簿づけをします。
package.json— プロジェクトが必要とするものの、人が読める一覧と、それを動かすためのコマンド。あなた(またはAI)がこれを編集します。- lockfile(ロックファイル)(
package-lock.jsonなど) — すべてのパッケージとその正確なバージョンの、機械が生成した厳密な記録です。これがあるおかげで、あなたのマシン、チームメイトのマシン、サーバーのどこでもアプリが同じようにビルドされます。これは手で編集せず、ツールに管理させます。
{
"name": "my-app",
"scripts": {
"dev": "next dev",
"build": "next build"
},
"dependencies": {
"next": "16.0.0",
"react": "19.0.0"
}
}
なぜ気にするのでしょう?AIが「これのためにライブラリを追加しましょう」と言うとき、それは package.json を編集していて、あなたは誰かほかの人のコードを信用していることになります——よく知られた少数の依存関係のほうが、得体の知れないものの山よりも安全です。そしてビルドが原因不明で壊れたとき、依存関係の食い違いがよくある容疑者であり、「パッケージを削除して入れ直す」が本当によくある現実的な対処法になります。