{"id":20183,"library":"laravel-vite-plugin","title":"Laravel Vite Plugin","description":"Laravel Vite Plugin integrates Vite with Laravel, providing hot module replacement and asset bundling tailored for Laravel projects. Version 3.0.1 requires Vite ^8.0.0 and Node ^20.19.0 or >=22.12.0. It ships with TypeScript definitions and follows Laravel's convention for Vite configuration. Unlike generic Vite plugins, it handles Blade asset referencing, hot file management, and server URL resolution for Laravel's backend-first workflow. Major version bumps align with Vite major releases; v3 introduced Vite 8 support. The plugin is actively maintained by the Laravel core team.","status":"active","version":"3.0.1","language":"javascript","source_language":"en","source_url":"https://github.com/laravel/vite-plugin","tags":["javascript","laravel","vite","vite-plugin","typescript"],"install":[{"cmd":"npm install laravel-vite-plugin","lang":"bash","label":"npm"},{"cmd":"yarn add laravel-vite-plugin","lang":"bash","label":"yarn"},{"cmd":"pnpm add laravel-vite-plugin","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"peer dependency for Vite 8 support","package":"vite","optional":false}],"imports":[{"note":"ESM-only since v3; use import syntax. Default export is the plugin function.","wrong":"const laravel = require('laravel-vite-plugin');","symbol":"laravel-vite-plugin","correct":"import { defineConfig } from 'vite';\nimport laravel from 'laravel-vite-plugin';\n\nexport default defineConfig({\n  plugins: [laravel({ input: ['resources/js/app.js'] })]\n});"},{"note":"Named export for Vite's handleHotUpdate; available as a named export.","wrong":"const { refreshing } = require('laravel-vite-plugin');","symbol":"refreshing","correct":"import { refreshing } from 'laravel-vite-plugin';\n\n// Use in vite.config.js for custom refresh logic"}],"quickstart":{"code":"// vite.config.js\nimport { defineConfig } from 'vite';\nimport laravel from 'laravel-vite-plugin';\nimport vue from '@vitejs/plugin-vue';\n\nexport default defineConfig({\n  plugins: [\n    laravel({\n      input: ['resources/css/app.css', 'resources/js/app.js'],\n      refresh: true,\n    }),\n    vue(),\n  ],\n});","lang":"javascript","description":"Minimal Vite configuration for Laravel app with Vue support, enabling HMR and asset refresh."},"warnings":[{"fix":"Upgrade Vite to ^8.0.0 and Node to a supported version (^20.19.0 or >=22.12.0).","message":"v3 requires Vite 8 and Node >=20.19.0 or >=22.12.0; drop Vite 7 support.","severity":"breaking","affected_versions":">=3.0.0"},{"fix":"Upgrade Vite to ^6.0.0 or ^7.0.0.","message":"v2 requires Vite 6 or 7 and Node 18+; drop Vite 5 support.","severity":"breaking","affected_versions":">=2.0.0 <3.0.0"},{"fix":"Use import statement instead of require.","message":"Using require() to import the plugin is deprecated; ESM-only since v3.","severity":"deprecated","affected_versions":">=3.0.0"},{"fix":"Ensure the hotFile directory exists or upgrade to >=2.0.1.","message":"Hot file must be writable and may not auto-create parent directories in some setups; v2.0.1 added auto creation.","severity":"gotcha","affected_versions":"<2.0.1"},{"fix":"Add CORS origins manually or upgrade to >=1.2.0.","message":"Default CORS origins added in v1.2.0; missing CORS headers can cause HMR issues.","severity":"gotcha","affected_versions":"<1.2.0"}],"env_vars":null,"last_verified":"2026-04-25T00:00:00.000Z","next_check":"2026-07-24T00:00:00.000Z","problems":[{"fix":"Ensure Vite version matches plugin peer dependency (^8.0.0 for v3).","cause":"Using an unsupported Vite version (e.g., Vite 5 with plugin v3).","error":"laravel-vite-plugin tried to access a property of undefined (reading 'env')"},{"fix":"Install the package: npm install laravel-vite-plugin --save-dev. Use import instead of require.","cause":"Package not installed or using require() in ESM-only context.","error":"Cannot find module 'laravel-vite-plugin'"},{"fix":"Use import laravel from 'laravel-vite-plugin' (default export).","cause":"Incorrect import syntax; may be using default import incorrectly.","error":"TypeError: laravel is not a function"}],"ecosystem":"npm","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}