現在のバージョン確認
$ php artisan --versionLaravel Framework 9.16.09でも結構古いバージョンですね。。
ちなみにPHPは8.1以上が必要なので、古い場合はアップデートしておいてください。
composer.jsonの更新
最初にcomposer.jsonを更新します。
現在(2023/2/20)は下記構成なのでLaravelの他にも古くなっているところは合わせましょう。
"require": { "php": "^8.1", "guzzlehttp/guzzle": "^7.2", "laravel/framework": "^10.0", "laravel/sanctum": "^3.2", "laravel/tinker": "^2.8"},"require-dev": { "fakerphp/faker": "^1.9.1", "laravel/pint": "^1.0", "laravel/sail": "^1.18", "mockery/mockery": "^1.4.4", "nunomaduro/collision": "^7.0", "phpunit/phpunit": "^10.0", "spatie/laravel-ignition": "^2.0"},// ..."config": { "optimize-autoloader": true, "preferred-install": "dist", "sort-packages": true, "allow-plugins": { "pestphp/pest-plugin": true, "php-http/discovery": true }},"minimum-stability": "stable","prefer-stable": true下の方も変わってます。
minimum-stabilityがstableになっています。
friendsofphp/php-cs-fixerを使用していた場合は、laravel/pintというLaravel用のものが追加されたのでどちらかを残す形でいいかと思います。
ここまでできたらコンポーザーアップデートしてみましょう。
$ composer updateバージョン確認すると10になりました。
$ php artisan --versionLaravel Framework 10.0.3phpunit.xml
phpunit10にした場合はphpunit.xmlのprocessUncoveredFiles属性を削除します。
(coverageに付いていた属性です。)
<coverage> <include> <directory suffix=".php">./app</directory> </include></coverage>テストを実行して問題ないか確認します。
問題があった場合は下記を変更点を参考に修正しましょう。
あとは全体的に型が付けられるようになりました。
不十分かもしれませんが、下記参考に編集してみてください。
webpackからViteに変更
Laravel9の古いバージョンだとLaravelMixというwebpackを使用したライブラリを使用しています。
こちらもLaravel10で使用されているViteに変更してみましょう。
Laravel10のpackage.jsonは下記になります。
{ "private": true, "scripts": { "dev": "vite", "build": "vite build" }, "devDependencies": { "axios": "^1.1.2", "laravel-vite-plugin": "^0.7.2", "vite": "^4.0.0" }}scriptsはmixを実行していた部分を削除して、viteが実行されるように変更します。
devDependenciesにはviteとlaravel-vite-pluginを追記します。
laravel-mixとかwebpackのライブラリを使用していた場合は削除しておきましょう。
package.jsonの修正が完了したらインストールします。
$ yarn installwebpack.mix.jsファイルを削除して、vite.config.jsを新しく作成します。
import { defineConfig } from 'vite';import laravel from 'laravel-vite-plugin';
export default defineConfig({ plugins: [ laravel({ input: ['resources/css/app.css', 'resources/js/app.js'], refresh: true, }), ],});Viteの設定に関しては下記の記事も参考にしてください。
bladeファイルのscc,jsの読み込み部分を下記のように変更します。
@vite(['resources/css/app.css', 'resources/js/app.js'])デフォルトではviteのビルド先が/public/buildになるので、.gitignoreに追加しておきます。
/public/buildmix-manifest.json,/public/css,/public/jsの項目は必要ないので削除します。


