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

自托管GitLab CI部署Nuxt 3 SSR至Vercel失败求助

解决Nuxt3 SSR通过GitLab CI部署到Vercel的"dist目录未找到"问题

核心问题分析

GitLab CI的干净环境中,Vercel CLI默认未正确识别Nuxt3的SSR构建产物路径(默认是.output而非静态站点的dist),而本地环境因存在Vercel项目配置缓存或本地预设,能自动适配。

具体解决步骤

1. 添加Vercel配置文件指定输出路径

在项目根目录创建vercel.json,明确告知Vercel正确的构建和输出配置:

{
  "buildCommand": "nuxt build",
  "devCommand": "nuxt dev",
  "installCommand": "npm install",
  "outputDirectory": ".output"
}

2. 调整GitLab CI部署脚本

避免全局安装vercel引发版本不一致问题,改用项目本地依赖执行:

script:
  - npm install
  - npx vercel pull --yes --environment=preview --token=$VERCEL_TOKEN
  - npx vercel build --token=$VERCEL_TOKEN
  - npx vercel deploy --prebuilt --token=$VERCEL_TOKEN

需提前在项目package.json的devDependencies中添加vercel依赖。

3. 清理GitLab CI缓存

GitLab CI的缓存可能残留旧的Vercel配置,导致路径识别错误。可在.gitlab-ci.yml中添加缓存清理逻辑,或手动进入GitLab项目的CI/CD设置页面清除缓存。

4. 确认Vercel项目框架预设

在Vercel项目的设置界面,将Framework Preset设置为Nuxt.js,让Vercel自动适配Nuxt3的SSR构建逻辑。

5. 校验CI环境变量

确保GitLab CI中配置的VERCEL_TOKEN权限正确,且变量已设为masked类型保护敏感信息。

本地成功的原因

本地环境中,Vercel CLI通过之前的部署操作或本地初始化,已自动识别Nuxt3框架类型和输出路径;而GitLab CI是全新的隔离环境,缺少这些预设配置,需要手动指定。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 14:25:30