Laravel InertiaJS SSR报错:找不到laravel-vite-plugin/inertia-helpers.js模块
Laravel Inertia SSR 报错:Cannot find module 'laravel-vite-plugin/inertia-helpers.js'
错误原因
你使用的laravel-vite-plugin@0.5.0版本不包含inertia-helpers.js模块——这个辅助模块是在插件的后续版本(v0.6及以上)才新增的,因此运行SSR时会触发模块找不到的错误。
解决方案
方案1:升级laravel-vite-plugin到兼容版本
- 执行命令升级插件:
npm install laravel-vite-plugin@latest --save-dev
- 重新构建项目并启动SSR服务:
npm run build npm run ssr
方案2:手动实现页面组件解析逻辑(无需升级插件)
如果暂时不想升级插件,可以修改resources/js/ssr.js,替换原有的resolvePageComponent导入,手动实现页面匹配逻辑:
import { createInertiaApp } from '@inertiajs/inertia-vue3'; import createServer from '@inertiajs/server'; import { renderToString } from '@vue/server-renderer'; import { createSSRApp, h } from 'vue'; // 手动实现页面组件解析 const resolvePageComponent = (name, pages) => { const page = pages[`./Pages/${name}.vue`]; if (typeof page === 'function') { return page(); } throw new Error(`Page not found: ${name}`); }; createServer(page => createInertiaApp({ page, render: renderToString, resolve: name => resolvePageComponent(name, import.meta.glob('./Pages/**/*.vue')), setup({ app, props, plugin }) { return createSSRApp({ render: () => h(app, props) }).use(plugin); }, }) );
修改完成后,重新构建并启动SSR:
npm run build npm run ssr
额外检查
确保npm run build --ssr命令执行正常,已在bootstrap/ssr/目录下生成了正确的ssr.mjs产物。
内容的提问来源于stack exchange,提问作者Patrick Quijano
相关产品推荐
相关产品推荐

