Laravel+Vue+Inertia项目部署求助:免费服务器报错及Vercel日志问题
问题解决与部署指南
一、npm install 找不到vendor vue文件的解决方案
- 确认
package.json中vue相关依赖在dependencies字段(而非仅devDependencies),生产环境部署时npm install默认跳过devDependencies,若需安装可加参数npm install --production=false - 清理npm缓存后重新安装:
npm cache clean --force rm -rf node_modules package-lock.json npm install - 匹配项目要求的Node.js版本:在项目根目录添加
.nvmrc文件指定版本(如18.x),部署服务器使用对应版本执行安装 - 若存在
package-lock.json或yarn.lock,检查其与package.json的依赖一致性,必要时删除锁文件后重新执行安装
二、Vercel部署日志权限错误修复
错误核心为Vercel文件系统大部分目录只读,无法写入默认的storage/logs/laravel.log,解决步骤:
- 修改日志存储路径:
- 在项目的
.env(或Vercel环境变量中)设置:LOG_PATH=/tmp/laravel.log - 或直接修改
config/logging.php,将stream驱动的path配置替换为:'path' => '/tmp/laravel.log',
- 在项目的
- 适配Vercel的Laravel部署配置:
- 在
vercel.json中配置Serverless函数入口(若未自动生成):{ "functions": { "api/index.php": { "runtime": "vercel-php@0.7.2" } }, "routes": [ { "src": "/(.*)", "dest": "/api/index.php" } ] } - 配置Vercel的Build Command:
composer install --optimize-autoloader --no-dev && php artisan config:cache && php artisan route:cache && npm install && npm run build - 将缓存目录也指向可写的
/tmp:修改config/cache.php中file驱动的path为'/tmp/cache'
- 在
三、Laravel+Vue+Inertia 免费服务器分步部署(以Vercel为例)
- 本地准备:
- 确保项目本地运行正常,执行
npm run build生成前端生产资源 - 创建
.env.production,配置APP_KEY、APP_URL(Vercel分配的域名)、远程数据库信息(如免费版云数据库)、LOG_PATH=/tmp/laravel.log
- 确保项目本地运行正常,执行
- Vercel项目配置:
- 登录Vercel导入GitHub仓库
- 在Build & Development Settings中设置:
- Build Command:上述的组合命令
- Output Directory:
public
- 环境变量配置:
- 在Vercel项目的Settings → Environment Variables中添加
.env.production里的所有关键变量(如APP_KEY、DB_HOST、DB_DATABASE等)
- 在Vercel项目的Settings → Environment Variables中添加
- 触发部署:
- 提交代码到GitHub触发自动部署,查看Build日志排查问题
- 部署完成后访问分配的域名验证功能
内容的提问来源于stack exchange,提问作者Joel
相关产品推荐
相关产品推荐

