使用npm/yarn workspaces的Next.js monorepo无法部署到Vercel求助
错误根本原因
你当前将Vercel部署根目录设置为website后,Vercel构建时只会读取website目录下的package.json,无法识别仓库根目录的npm workspaces配置,因此会默认从npm公网 registry 查找本地私有包@common/components,自然触发404报错。
解决方案
按以下步骤调整配置即可解决:
- 第一步:修改Vercel项目根目录配置,将之前设置的
website回退为默认的仓库根目录(路径为/) - 第二步:在Vercel项目的「构建与输出设置」中,修改三项配置:
- 安装命令:
npm install --workspaces - 构建命令:
npm run build --workspace=website - 输出目录:
website/.next
- 安装命令:
- 第三步:确认你已经将仓库根目录的
package-lock.json提交到仓库,不要仅提交website目录下的锁文件,避免依赖安装不一致。
可选优化
如果后续不需要单独构建其他workspace,可以直接在根目录的package.json里添加scripts配置:
{ "scripts": { "build": "npm run build --workspace=website" } }
调整后Vercel的构建命令直接写npm run build即可,配置更简洁。
内容的提问来源于stack exchange,提问作者Saad
相关产品推荐
相关产品推荐

