経緯
公式ドキュメントどうりにJetstreamのLivewireを使用したいと思った時に4時間は溶かしてしまったので今後の誰かのためになればと思い記事にしました。
何に困っていたかと言うと、vendorフォルダ内にあるjetstreamに関するviewsファイル群がpublicizeできないことによってjetstreamの機能が使えないことです。
前提条件
- OS : mac
- 環境 : xampp
- composer : v2.5.1
- Laravel : v9.52.5
結論
Laravel v9(latest)でJetstreamを使用するなら、Jetstreamのバージョンを下げた指定でダウンロードしましょう
詳細
公式ではcreate-projectから丁寧に下記のようなコマンドまで入力入力内容が表記されています。
その問題となっている下記のコードを手順通りに入力すると、
php artisan vendor:publish --tag=jetstream-views
↓↓↓↓↓↓↓↓↓↓
[INFO] No publishable resources for tag [jetstream-views].
と、うまくパブリッシュなリソースフォルダにjetstreamに関するviewsファイル群を移行できなかったとエラーの戻り値が表示されます。
Unable to locate a class or view for component [jet-dialog-modal].
と言うエラーで調べてもうまくヒットしませんでした。
OKパターン
以下はOKパターンです。
Laravelのバージョンは9とします
PROJECT_NAME : jetstream-app
DB_NAME : livewire_app_db
# プロジェクト作成 versionは9で指定
composer create-project "laravel/laravel=9.*" jetstream-app
# プロジェクトへ移動
cd jetstream-app
# versionは2.9.0で指定
composer require laravel/jetstream:"2.9.0"
# Livewireをインストール
php artisan jetstream:install livewire
ここまでできればあとはnpmの設定のみです
npm install
npm run build
# 今回はローカルでxamppを使用しています
# http://localhost/phpmyadmin/ からDBを作成します
# その後、.envのDB_DATABASEの項目を変更します
DB_DATABASE=laravel
# ↓
DB_DATABASE=livewire_app_db
# 公式だとすぐ下記コマンドを入力するような表記ですが、DBを先に作成しましょう
php artisan migrate
ここで最後にうまくいかなかったコマンドです
php artisan vendor:publish --tag=jetstream-views
結果は
無事vendorフォルダ内のフォルダ1式がコピーできていました。
めでたしめでたし。
npm run build
も忘れず実行しておきましょう
備忘録記事
下記からインストールできるjetstreamのバージョンが確認できます。
# Laravel flameworkのバージョン確認方法
php artisan --version
# インストールしたパッケージのバージョン確認方法
composer show laravel/jetstream
# このコマンドで確認したら、コンフリクトverの表記あったので入力して確認してみましょう
composer show --all laravel/framework