Vite suddenly behaves odd!
I am on Laravel 12 and since the past few hours somehting has gone wrong with Vite and it behaves odd.
My local runs using Laravel Sail.
When I run sail npm run build first time, I get:
mathewparet@gMac mllm-concepts % sail npm run build
> build
> vite build
vite v6.2.0 building for production...
✓ 120 modules transformed.
public/build/manifest.json 0.20 kB │ gzip: 0.15 kB
public/build/assets/app-BQCMSuRn.css 68.33 kB │ gzip: 12.18 kB
public/build/assets/app-rX4knrQg.js 233.81 kB │ gzip: 80.86 kB
✓ built in 1.54s
And the second time I run the same, I get:
mathewparet@gMac mllm-concepts % sail npm run build
> build
> vite build
vite v6.2.0 building for production...
✓ 2003 modules transformed.
public/build/manifest.json 18.20 kB │ gzip: 1.52 kB
public/build/assets/app-BQCMSuRn.css 68.33 kB │ gzip: 12.18 kB
public/build/assets/InputError.vue_vue_type_script_setup_true_lang-DVfHlzlW.js 0.29 kB │ gzip: 0.23 kB
public/build/assets/loader-circle-ChTdYEp3.js 0.36 kB │ gzip: 0.29 kB
public/build/assets/HeadingSmall.vue_vue_type_script_setup_true_lang-DpJ912Mr.js 0.37 kB │ gzip: 0.28 kB
public/build/assets/eye-BQ19bgD3.js 0.47 kB │ gzip: 0.34 kB
public/build/assets/pencil-ltePawc9.js 0.49 kB │ gzip: 0.36 kB
public/build/assets/TextLink.vue_vue_type_script_setup_true_lang-D4mQfKmo.js 0.52 kB │ gzip: 0.35 kB
public/build/assets/VerifyEmail-Df--nvb_.js 1.42 kB │ gzip: 0.78 kB
public/build/assets/ConfirmPassword-1YNLVE3y.js 1.62 kB │ gzip: 0.84 kB
public/build/assets/AuthLayout.vue_vue_type_script_setup_true_lang-RILIamNo.js 1.72 kB │ gzip: 0.89 kB
public/build/assets/Index-Bq-M1nfh.js 1.72 kB │ gzip: 0.77 kB
public/build/assets/Dashboard-B8nUgrdk.js 1.73 kB │ gzip: 0.81 kB
public/build/assets/ForgotPassword-BwGLBacQ.js 1.98 kB │ gzip: 1.00 kB
public/build/assets/Index-rsJg0T5f.js 2.02 kB │ gzip: 0.93 kB
public/build/assets/Label.vue_vue_type_script_setup_true_lang-BNSVCK9f.js 2.05 kB │ gzip: 1.09 kB
public/build/assets/Layout.vue_vue_type_script_setup_true_lang-DftmTgax.js 2.24 kB │ gzip: 1.15 kB
public/build/assets/ResetPassword-DvnMcYTQ.js 2.53 kB │ gzip: 0.98 kB
public/build/assets/Show-v78dSk7u.js 2.61 kB │ gzip: 1.01 kB
public/build/assets/Show-CM8Pphk5.js 2.61 kB │ gzip: 1.01 kB
public/build/assets/index-wYDIWxDi.js 2.71 kB │ gzip: 1.19 kB
public/build/assets/Index-Ogid4eqU.js 2.74 kB │ gzip: 1.24 kB
public/build/assets/Form-B7XAOU1C.js 2.77 kB │ gzip: 1.08 kB
public/build/assets/Form-DXdh-H4_.js 2.77 kB │ gzip: 1.08 kB
public/build/assets/Appearance-0GTs8E1w.js 2.90 kB │ gzip: 1.25 kB
public/build/assets/Register-DMjvT6NV.js 3.14 kB │ gzip: 1.18 kB
public/build/assets/Password-BiSc2dEJ.js 3.31 kB │ gzip: 1.20 kB
public/build/assets/Login-BoApI13H.js 4.20 kB │ gzip: 1.82 kB
public/build/assets/Form-D1bSBaxi.js 4.40 kB │ gzip: 1.69 kB
public/build/assets/Show-DnIYhCgp.js 5.15 kB │ gzip: 1.90 kB
public/build/assets/index-ArMA0Luc.js 7.19 kB │ gzip: 3.21 kB
public/build/assets/Profile-CeEq2NFI.js 8.66 kB │ gzip: 3.00 kB
public/build/assets/index-czqePVrH.js 12.78 kB │ gzip: 4.66 kB
public/build/assets/Form.vue_vue_type_script_setup_true_lang-C9jaQRGb.js 14.09 kB │ gzip: 4.37 kB
public/build/assets/AppLayout.vue_vue_type_script_setup_true_lang-Ducrft8F.js 29.62 kB │ gzip: 7.64 kB
public/build/assets/Welcome-CHUgkGlb.js 47.56 kB │ gzip: 8.80 kB
public/build/assets/datetime-VlKNMqrw.js 69.67 kB │ gzip: 21.63 kB
public/build/assets/AppLogoIcon.vue_vue_type_script_setup_true_lang-BVXWYb7v.js 115.51 kB │ gzip: 36.35 kB
public/build/assets/app-rdJPRksJ.js 259.79 kB │ gzip: 90.31 kB
✓ built in 4.96s
This pattern repeats every time. Every odd time I run it builds just 3 files while a subsequent run compiles it fully.
Also sail npm run dev doesn't work any more. It doesn't throw an error on the terminal but in the browser I can see:
Uncaught (in promise) Error: Page not found: ./pages/Dashboard.vue
at resolvePageComponent (index.js:9:11)
at resolve (app.ts:28:24)
at r (createInertiaApp.ts:34:54)
at L2 (createInertiaApp.ts:39:5)
at app.ts:26:1Understand this error
chext_driver.js:495
The above error doesn't occur if I run sail npm run build an even time. But appears if I run it an odd time.
This is quite odd! The only thing I've done different today is upgrading to Laravel 12.8 (from 12) and installing vue-awesome-paginator.
For the life of me I can't figure out what is wrong.
My vite.config.ts:
import vue from '@vitejs/plugin-vue';
import autoprefixer from 'autoprefixer';
import laravel from 'laravel-vite-plugin';
import path from 'path';
import tailwindcss from 'tailwindcss';
import { resolve } from 'node:path';
import { defineConfig } from 'vite';
export default defineConfig({
plugins: [
laravel({
input: ['resources/js/app.ts'],
ssr: 'resources/js/ssr.ts',
refresh: true,
}),
vue({
template: {
transformAssetUrls: {
base: null,
includeAbsolute: false,
},
},
}),
],
resolve: {
alias: {
'@': path.resolve(__dirname, './resources/js'),
'ziggy-js': resolve(__dirname, 'vendor/tightenco/ziggy'),
},
},
css: {
postcss: {
plugins: [tailwindcss, autoprefixer],
},
},
});
My package.json
{
"private": true,
"type": "module",
"scripts": {
"build": "vite build",
"build:ssr": "vite build && vite build --ssr",
"dev": "vite",
"format": "prettier --write resources/",
"format:check": "prettier --check resources/",
"lint": "eslint . --fix"
},
"devDependencies": {
"@eslint/js": "^9.19.0",
"@types/node": "^22.13.5",
"@vue/eslint-config-typescript": "^14.3.0",
"eslint": "^9.17.0",
"eslint-config-prettier": "^10.0.1",
"eslint-plugin-vue": "^9.32.0",
"prettier": "^3.4.2",
"prettier-plugin-organize-imports": "^4.1.0",
"prettier-plugin-tailwindcss": "^0.6.9",
"typescript-eslint": "^8.23.0",
"vue-tsc": "^2.2.4"
},
"dependencies": {
"@inertiajs/vue3": "^2.0.0-beta.3",
"@vitejs/plugin-vue": "^5.2.1",
"@vueuse/core": "^12.0.0",
"autoprefixer": "^10.4.20",
"class-variance-authority": "^0.7.1",
"clsx": "^2.1.1",
"concurrently": "^9.0.1",
"laravel-vite-plugin": "^1.0",
"lucide": "^0.468.0",
"lucide-vue-next": "^0.468.0",
"luxon": "^3.6.0",
"radix-vue": "^1.9.11",
"tailwind-merge": "^2.5.5",
"tailwindcss": "^3.4.1",
"tailwindcss-animate": "^1.0.7",
"typescript": "^5.2.2",
"vite": "^6.2.0",
"vue": "^3.5.13",
"vue-awesome-paginate": "^1.2.0",
"ziggy-js": "^2.4.2"
},
"optionalDependencies": {
"@rollup/rollup-linux-x64-gnu": "4.9.5",
"@tailwindcss/oxide-linux-x64-gnu": "^4.0.1",
"lightningcss-linux-x64-gnu": "^1.29.1"
}
}
My app.ts:
import '../css/app.css';
import { createInertiaApp } from '@inertiajs/vue3';
import { resolvePageComponent } from 'laravel-vite-plugin/inertia-helpers';
import type { DefineComponent } from 'vue';
import { createApp, h } from 'vue';
import { ZiggyVue } from 'ziggy-js';
import { initializeTheme } from './composables/useAppearance';
import VueAwesomePaginate from "vue-awesome-paginate";
// Extend ImportMeta interface for Vite...
declare module 'vite/client' {
interface ImportMetaEnv {
readonly VITE_APP_NAME: string;
[key: string]: string | boolean | undefined;
}
interface ImportMeta {
readonly env: ImportMetaEnv;
readonly glob: <T>(pattern: string) => Record<string, () => Promise<T>>;
}
}
const appName = import.meta.env.VITE_APP_NAME || 'Laravel';
createInertiaApp({
title: (title) => `${title} - ${appName}`,
resolve: (name) => resolvePageComponent(`./pages/${name}.vue`, import.meta.glob<DefineComponent>('./pages/**/*.vue')),
setup({ el, App, props, plugin }) {
createApp({ render: () => h(App, props) })
.use(plugin)
.use(VueAwesomePaginate)
.use(ZiggyVue)
.mount(el);
},
progress: {
color: '#4B5563',
},
});
// This will set light / dark mode on page load...
initializeTheme();
Please or to participate in this conversation.