Laravel 6.xの認証機能でつまづいた話
認証機能のスカフォールドには下記が必要とのことで、やった。
composer require laravel/ui --dev
php artisan ui vue --auth
が、php artisan ui vue --auth実行後に出た下記指示に従うも失敗・・・。
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
→ファイル(フォルダ?)を展開(untar)できないとかなんとか・・・。
個別にやってみる。
npm install
なんかいろいろでたけどうまく行ったっぽい。
npm run dev
エラー。
> @ dev (プロジェクトフォルダの絶対パス)
> npm run development
'npm' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
error code ELIFECYCLE
21 error errno 1
22 error @ dev: `npm run development`
22 error Exit status 1
23 error Failed at the @ dev script.
23 error This is probably not a problem with npm. There is likely additional logging output above.
これをやってみる。
https://akamist.com/blog/archives/2827
rm -r node_modules ※-rfオプションはつけられなかった
→多分ok
rm package-lock.json yarn.lock
→エラー。
Remove-Item : 引数 'yarn.lock' を受け入れる位置指定パラメーターが見つかりません。
発生場所 行:1 文字:1
+ rm package-lock.json yarn.lock
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidArgument: (:) [Remove-Item]、ParameterBindingException
+ FullyQualifiedErrorId : PositionalParameterNotFound,Microsoft.PowerShell.Commands.RemoveItemCommand
rm package-lock.json
rm yarn.lock
存在しないためできません。
npm cache clear --force
(プロジェクトフォルダで)npm install
npm run dev
→同じエラー。泣
ファイルを消せてないからクリアできてないのかも。
もうMixでアセットしなくてもよさそうだからやめようかな・・・
しかし、アプリケーションの開発時に必要だというわけではありません。どんなアセットパイプラインツールを使用してもかまいませんし、使わなくても良いのです。
たまたまLaravel 6.x 認証を読み直したら、コード変わってた!!!
composer require laravel/ui "^1.0" --dev
前見たときはバージョン指定なかったのに!
私がインストールしたのは1.2。このせいでコンパイルできなかったのかも?
composer remove laravel/ui --dev
composer clear-cache
composer require laravel/ui "^1.0" --dev
→結局インストールされたのはInstalling laravel/ui (v1.2.0)。
またnpmコマンドが使えなくなっていたので、下記同様の方法で環境変数をトップに移動する。
npm cache clean
→「npm@5に関してはcasheはvalidだと保証されているので、一貫性を調べたいなら
npm cache verifyをやりなさい」と出る。「それでもキャッシュを消したいなら--forceをつけてやりなさい」と。
やってみる。
npm cache verify
npm install
npm run dev
→できた!!!笑
ログインページもちゃんと表示されている。
結局何も変えてない?最初できなかったの何だったんだ・・・