You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel9+Vue3项目vite build --watch不监听.vue文件的问题

解决Laravel 9 + Vite + Vue3中.vue文件热更新失效的问题

1. 替换错误的监听脚本

你当前使用的vite build --watch是生产构建模式下的监听,不支持Vite的热模块替换(HMR)功能,这是导致.vue文件修改后无响应的核心原因。

应该使用Vite官方的开发服务器命令:

  • 直接运行:npm run dev(Laravel 9默认的package.json已配置"dev": "vite")
  • 若需自定义脚本,在package.json中修改/添加:
    "scripts": {
      "dev": "vite",
      "build": "vite build"
    }
    

2. 清理冲突的插件配置

你的vite.config.js中同时启用了FullReload和laravel插件的refresh: true,两者功能重叠会干扰Vue的HMR。请移除FullReload插件:

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

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

3. 确认.vue文件被正确引入

确保Demo.vue已被入口文件(如resources/js/app.js)正确导入并使用,示例如下:

// resources/js/app.js
import { createApp, h } from 'vue';
import { createInertiaApp } from '@inertiajs/vue3';

createInertiaApp({
  resolve: name => {
    const pages = import.meta.glob('./Pages/**/*.vue', { eager: true })
    return pages[`./Pages/${name}.vue`]
  },
  setup({ el, App, props, plugin }) {
    createApp({ render: () => h(App, props) })
      .use(plugin)
      .mount(el)
  },
})

如果Demo.vue在Pages目录下,需确保resolve逻辑能正确加载;若为全局组件,要在app.js中完成注册。

4. 额外排查点

  • 清除浏览器缓存,或用无痕模式测试
  • 查看终端报错信息,确认Vite是否正确识别.vue文件的变更

内容的提问来源于stack exchange,提问作者Julius

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 11:50:31