Laravel 9.1集成Vite执行npm run dev时报TypeError: laravel is not a function
解决Laravel 9.1 + Vite报错"TypeError: laravel is not a function"
可能的原因及修复步骤
1. 修正laravel-vite-plugin的导入方式
你的vite.config.js中默认导入laravel的方式可能不匹配当前插件版本。部分版本的laravel-vite-plugin采用命名导出而非默认导出,导致你导入的laravel是一个对象而非函数。
修改vite.config.js的导入代码:
// 原代码 import laravel from 'laravel-vite-plugin' // 修改为 import { laravel } from 'laravel-vite-plugin'
修改后重新执行npm run dev测试。
2. 降级laravel-vite-plugin到兼容版本
你使用的laravel-vite-plugin@0.7.1版本可能与Laravel 9.1存在兼容性问题。Laravel 9.1发布时,对应的稳定版laravel-vite-plugin为0.4.x系列。
执行以下命令降级插件:
npm uninstall laravel-vite-plugin npm install laravel-vite-plugin@0.4.0 --save-dev
3. 切换Node.js到LTS版本
Node.js v19是非长期支持版本,可能存在与Vite或插件的兼容性问题。建议切换到LTS版本(如v18.x),可通过nvm管理版本:
# 安装nvm(未安装时执行) curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash # 安装并切换到Node.js 18 LTS nvm install 18 nvm use 18
验证流程
- 删除旧依赖文件:
rm -rf node_modules package-lock.json
- 重新安装依赖:
npm install
- 启动开发服务:
npm run dev
内容的提问来源于stack exchange,提问作者Timmsy
相关产品推荐
相关产品推荐

