Laravel9でVite+Vue3環境構築

Laravel9には初めからViteが入っているらしくVue3.jsの環境を作ってみました。
前提としてOSはMacOS、PHP、Node.jsはインストール済みです。

プロジェクト作成

まずLaravelの新規プロジェクトを作ります。

$composer create-project --prefer-dist laravel/laravel:^9.0 laravel-vite
$cd laravel-vite 
$php artisan -V
Laravel Framework 9.24.0

Vue.jsインストール

Vue.jsとViteのインストール、設定を行います。

$npm install
$npm install vue@next vue-loader@next
$npm i @vitejs/plugin-vue --save-dev

ファイルの編集

まずvite.config.jsをエディタで開き以下のように修正します。

import { defineConfig } from 'vite';
import laravel from 'laravel-vite-plugin';
import vue from '@vitejs/plugin-vue'

export default defineConfig({
 plugins: [
  vue(),
  laravel({
   input: ['resources/js/app.js'],
   refresh: true,
  }),
 ],
});

次にresouces/js/app.jsを以下のように編集します。

import './bootstrap';
import '../css/app.css';
import {createApp} from 'vue'
import App from './App.vue'
createApp(App).mount("#app")

次にpublic/js下にApp.vueファイルを作ります。

<template> 
 Hello World
</template>

resources/views下にapp.blade.phpファイルを作ります。

<!DOCTYPE html>
 <html>
  <head>
   <meta charset="utf-8">
    <title>Viteのテスト</title>
   @vite('resources/css/app.css')
  </head>
  <body>
   <div id="app"></div>
   @vite('resources/js/app.js')
  </body>
</html>

routes/web.phpを変更します。

Route::get('/', function () {
 return view('app');
});

サーバ起動

まずviteを起動します。

npm run dev

別のターミナルでLaravelサーバを起動します。

$php artisan serve

INFO Server running on [http://127.0.0.1:8000].  

ブラウザでhttp://127.0.0.1:8000が表示し、Hello Worldが表示されることを確認します。


参考サイト

https://readouble.com/laravel/9.x/ja/vite.html

https://techvblogs.com/blog/how-to-install-vue-3-in-laravel-9-with-vite