クマのブログ

つまづいたところ、学びを書いていきます

【Laravel 8.0】laravel auth機能が実装できない

前提

Windows 10

・Laravel 8.0

背景

Laravel入門書進めていく中で参考書通り進めたがつまづく。 模索した結果、解決したのでメモ

事象

参考書に従ってLaravelのAuth機能を実装しようと以下コマンドを実行

php artisan make:auth

だが、以下エラーが返ってきた

f:id:kuma_kuma0121:20210719091426p:plain

「おや?」

少しググってみると、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

を実行。以下画面となった。

f:id:kuma_kuma0121:20210719214515p:plain

Errorは出ているものの、

Finished. Please run MIx again.

と表示されたので、再度

npm run dev 

を実行。すると、緑色のバーが表示されどんどんたまっていく。

f:id:kuma_kuma0121:20210719215153p:plain

どんどん処理は進んでいき、 f:id:kuma_kuma0121:20210719215217p:plain

無事done。 f:id:kuma_kuma0121:20210719215250p:plain

結果

bladeやController、Model、Routeを整えて、ブラウザを確認すると… f:id:kuma_kuma0121:20210719215442p:plain

無事、Auth機能が実装できました!

所見

後で知ったんですが、Laravel8.0でのAuth機能の実装はjetstreamを使った方法が推奨されているんですね。

最近話題のtailwind.cssを使っているんですよね。 jetstream自体もどんなものかわかっていないので、 今度はjetstream verも試してみよう!

参考記事

Laravel6.x以降のAuth機能実装手順

node.js(npm)のインストール方法

npm run dev後のエラー対応方法