[Laravel] npm install

Laravelでnpm installを実行したとき、インストールされるモジュールはプロジェクトのルートディレクトリにある package.json ファイルに定義されています。

package.json ファイルの役割

  • 依存関係の管理:
    package.json ファイルには、プロジェクトが必要とするNode.jsモジュール(ライブラリやツール)がリストされています。
  • スクリプトの管理:
    npm run devnpm run build などのカスタムスクリプトもこのファイルに定義されています。

インストールされるモジュールの場所

  1. dependencies または devDependencies に定義されたモジュール
  • dependencies: 本番環境でも必要なモジュール。
  • devDependencies: 開発中にのみ必要なモジュール(例: ビルドツールやテストツール)。 例:
   {
     "dependencies": {
       "axios": "^1.4.0",
       "lodash": "^4.17.21"
     },
     "devDependencies": {
       "vite": "^4.2.1",
       "laravel-vite-plugin": "^0.7.2"
     }
   }

npm install を実行すると、これらのモジュールが node_modules フォルダにインストールされます。

  1. バージョンの管理
    各モジュールにはバージョン指定があり、^~ が使われることがあります:
  • ^1.4.0: メジャーバージョン(1.x.x)が一致する限り最新バージョンを使用。
  • ~1.4.0: マイナーバージョン(1.4.x)が一致する限り最新バージョンを使用。

Laravelの典型的なpackage.json

以下はLaravelプロジェクトでよく見られるpackage.jsonの例です:

{
  "private": true,
  "scripts": {
    "dev": "vite",
    "build": "vite build"
  },
  "dependencies": {
    "axios": "^1.4.0",
    "lodash": "^4.17.21"
  },
  "devDependencies": {
    "vite": "^4.2.1",
    "laravel-vite-plugin": "^0.7.2"
  }
}
  • scripts: npm run devnpm run build で実行されるコマンドを定義。
  • dependencies: フロントエンドで使用するライブラリ(例: axioslodash)。
  • devDependencies: 開発用ツール(例: vitelaravel-vite-plugin)。

補足

  • 変更を反映させる:
    package.json に手動でモジュールを追加・変更した場合、npm install を実行して変更を反映させます。
  • package-lock.json:
    モジュールの依存関係やバージョンをロックするためのファイルです。これにより、プロジェクトがどの環境でも同じバージョンのモジュールを使用します。