【Laravel 8.0】laravel auth機能が実装できない
前提
・Windows 10
・Laravel 8.0
背景
Laravel入門書進めていく中で参考書通り進めたがつまづく。 模索した結果、解決したのでメモ
事象
参考書に従ってLaravelのAuth機能を実装しようと以下コマンドを実行
php artisan make:auth
だが、以下エラーが返ってきた
「おや?」
少しググってみると、Laravel 6.0以降から
php artisan make:auth
は使えなくなっているらしい。
では解決方法を引き続き調査
試したこと
laravel uiのインストール
コチラの記事を参考にAuth機能を実行
まずは以下コマンドを実行してlaravel uiをインストール
composer require laravel/ui
⇒Successfully!
ユーザー登録や認証関連のビューファイルを生成
引き続き以下コマンドでユーザー登録や認証関連のビューファイルを生成
php artisan ui vue --auth // Vue.js使用の場合 or php artisan ui bootstrap --auth // bootstrapの場合
⇒Successfully (ぼくの場合はVue.js)
node.js(npm)のインストール
上記コマンド実行後以下指示が表示された
Vue scaffolding installed successfully.
Please run "npm install && npm run dev" to compile your fresh scaffolding.
Authentication scaffolding generated successfully.
訳: 「問題なくインストールされました。 npm install とnpm run devを実行してインストールしたモノをコンパイルしてください。」
ここで、npm installする前にnode.jsをインストールしてなかった(※)ので、インストール。 コチラを参照。
インストール後は正常に動くか確認も忘れずに。
node --version // nodeのバージョン確認 npm --version // npmのバージョン確認
※npmはnode.jsと一緒にインストールされる。
npm install
nodejs、npmをインストールし終えたので早速以下実行
npm install
わーっといろんなものがインストールされていく様子をドキドキしながら待つ
⇒Sucessfully
【本題】npm run dev
あと、これを実行し終えたらAuth機能実装!というところで以下実行
npm run dev
npm install 同様、ワーッといろんなものが実行されていく。
その時、出てきてしまった…ERRORが…
エラー文は以下の通り。
AssertionError [ERR_ASSERTION]: mix.js() is missing required parameter 1: entry
解決方法
エラー文でググっても海外のサイトしかなく、こちらを参考にした
本記事によるとpackage.json内にある"laravel-mix"のバージョンを手動で切り替えたのち、再度npm installする必要があるらしい。
ということで
laravel-mix: "^5.0.1" ⇒ "laravel-mix": "^6.0.6"
に変更し、再度
npm install
実行。
すると、何かが追加でインストールされた。そして、
npm run dev
を実行。以下画面となった。
Errorは出ているものの、
Finished. Please run MIx again.
と表示されたので、再度
npm run dev
を実行。すると、緑色のバーが表示されどんどんたまっていく。
どんどん処理は進んでいき、
無事done。
結果
bladeやController、Model、Routeを整えて、ブラウザを確認すると…
無事、Auth機能が実装できました!
所見
後で知ったんですが、Laravel8.0でのAuth機能の実装はjetstreamを使った方法が推奨されているんですね。
最近話題のtailwind.cssを使っているんですよね。 jetstream自体もどんなものかわかっていないので、 今度はjetstream verも試してみよう!