📝

【Laravel × vue.js】影響範囲最小限でvue2→vue3を行う

2021/10/13に公開

そろそろvue3も使ってみるかーと思い腰を上げて、Laravel×vue2のプロジェクトを vue3に上げて観ました。

その時の手順を記載します。

vue2→vue3を行う

では、早速vue2からvue3に移行します。

関連パッケージをアップデートする

npm i -D laravel-mix@next vue@next @vue/compiler-sfc vue-loader@next

僕が引っかかったポイントとしては、 vue-js-modal というライブラリがvue3対応してなさそうということです。vue-js-modal が入っていると依存関係が解決せずに、vue3にアップグレードできなさそうでした。

僕は vue-js-modal を削除して、vue3の新機能である「teleport」を使ってモーダルをリプレイスしていきます。
他にもvue3で使えないライブラリはあるかもしれないですね。。。

package.jsonを修正する

package.jsonをこのように変更します。

"scripts": {
    "development": "mix",
    "watch": "mix watch",
    "watch-poll": "mix watch -- --watch-options-poll=1000",
    "hot": "mix watch --hot",
    "production": "mix --production"
}

webpack.mix.jsを修正する

僕の場合はここの変更は必要なかったのですが、もしこのようになっていない場合は変更してください。

const mix = require('laravel-mix');
mix.js('resources/js/app.js', 'public/js').vue();

app.jsを修正する

app.jsではvueの呼び出し方とかコンポーネントの登録方法などが変わっています。

import { createApp } from 'vue';
const app = createApp({})

app.component('home-component', require('./components/App/Home.vue').default);

app.mount('#app')

このようにすれば、従来通りコンポーネントを登録して使用することができます。

これだけでLaravel×vueのプロジェクトで vue2からvue3に移行できました!
では、楽しい Laravel×vue3ライフを!

Discussion