やりかけたけど、結局使わなかったので、軽くメモ。
(用語の使い方とか、あってるか微妙。)
やりたいこと
Laravel で SPA のエントリーポイントを分割したい。
具体的には、一般の人がアクセスする SPA と、管理者がアクセスする SPA を分けたい。
方法
webpack.mix.js を編集
以下のように編集し、管理画面用のファイルが設置されるようにする。
これによって、ビルド時に mix-manifest.json に index が作成され、次手順のように Blade テンプレートから呼び出せるようになる。
以下の例では、管理者用画面として、adminApp.js と adminApp.scss を読み込むようにしている。
webpack.mix.js
let mix = require('laravel-mix');
mix.js('resources/assets/js/app.js', 'public/js')
.sass('resources/assets/sass/app.scss', 'public/css')
+ .js('resources/assets/js/adminApp.js', 'public/js')
+ .sass('resources/assets/sass/adminApp.scss', 'public/css');
adminApp.jsとadminApp.scssを用意する
既存の app.js と app.scss をもとに作成する。
Blade テンプレートを作成
管理者用画面の Blade テンプレートに、以下を追記する。
adminApp.blade.php
<script src="{{ mix('js/adminApp.js') }}"></script>
参考
以下のURLを参考にしたが、この手順では、mix-manifest.json を複数作成することになり、読み込みの設定等が必要になった。
https://codeday.me/jp/qa/20190505/777151.html