📢 Webサイト閉鎖と移転のお知らせ
このWebサイトは2026年9月に閉鎖いたします。
新しい記事は移転先で追加しております。(旧サイトでは記事を追加しておりません)

193行目: 193行目:
* ファイルアップロード機能を実装する際
* ファイルアップロード機能を実装する際
* 本番環境へのデプロイ時
* 本番環境へのデプロイ時
<br><br>
== アセットコンパイル ==
==== Laravel 9 / 10 (Viteの使用) ====
* Viteを使用して、より高速なビルドを行うことが可能である。
* HMR (Hot Module Replacement) に対応している。
* vite.config.jsファイルで設定する。
* ブレードテンプレートでの読み込み方が変更できる。
<br>
また、Laravel 9 / 10でもLaravel Mixを使用することは可能である。<br>
<br>
# package.jsonの依存関係インストール
npm install
# 開発サーバ起動
npm run dev
# 本番環境向けビルド
npm run build
<br>
<syntaxhighlight lang="js">
/* 設定ファイル: vite.config.js の例 */
import { defineConfig } from 'vite';
import laravel from 'laravel-vite-plugin';
export default defineConfig({
    plugins: [
      laravel({
          input: ['resources/css/app.css', 'resources/js/app.js'],
          refresh: true,
      }),
    ],
});
</syntaxhighlight>
<br>
==== Laravel 8 (Laravel Mixの使用) ====
* Laravel Mix (Webpackのラッパ) を使用する。
* webpack.mix.jsファイルで設定する。
* <code>npm run watch</code>コマンドでファイル変更監視が可能である。
<br>
# package.jsonの依存関係インストール
npm install
# 開発環境向けコンパイル
npm run dev
# 本番環境向けコンパイル (ミニファイ化)
npm run prod
# ファイル変更の監視
npm run watch
<br>
<syntaxhighlight lang="js">
/* 設定ファイル : webpack.mix.js の例 */
const mix = require('laravel-mix');
mix.js('resources/js/app.js', 'public/js')
  .sass('resources/sass/app.scss', 'public/css')
  .version();  // キャッシュバスティング
</syntaxhighlight>
<br>
==== ブレードテンプレートでの読み込み方の違い ====
* Laravel 9 / 10 (Viteの使用)
<syntaxhighlight lang="html">
<!-- CSS & JavaScript -->
@vite(['resources/css/app.css', 'resources/js/app.js'])
<!-- または個別に -->
@vite('resources/css/app.css')
@vite('resources/js/app.js')
</syntaxhighlight>
<br>
* Laravel 8 (Laravel Mixの使用)
<syntaxhighlight lang="html">
<!-- CSS -->
<link href="{{ mix('css/app.css') }}" rel="stylesheet">
<!-- JavaScript -->
<script src="{{ mix('js/app.js') }}"></script>
</syntaxhighlight>
<br>
Viteへの移行は比較的簡単で、公式ドキュメントにガイドがある。<br>
Laravel 9 / 10では、開発時のビルド速度が大幅に改善されており、Laravel 10では、Viteの設定がより柔軟になっている。<br>
<br><br>
<br><br>