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

如何将Turborepo管理的Monorepo中单个API包部署到DigitalOcean?

解决Turborepo Monorepo中单个API包部署到DigitalOcean的锁文件问题

我之前也碰到过一模一样的情况——DigitalOcean的部署工具默认会在你指定的部署目录下找package-lock.json或yarn.lock,但Turborepo作为Monorepo工具,只会在根目录生成统一的锁文件,这就导致单独部署packages/api目录时直接触发锁文件缺失的错误。这里有两个实用的解决方案:

方案一:以Monorepo根目录作为部署上下文(推荐)

这个方法能保留Turborepo的工作区优势,步骤很简单:

  • 在DigitalOcean的部署配置里,把部署上下文目录设置为你的Monorepo根目录(别选packages/api)
  • 设置构建命令为Turborepo专门针对api包的构建指令:
    yarn build --filter=api
    
  • 设置启动命令为进入api包目录并启动服务:
    cd packages/api && yarn start
    

这样平台会自动找到根目录的yarn.lock,完成依赖安装后只构建api包,最后正常启动服务。

方案二:为单个API包生成独立锁文件

如果因为某些限制必须单独部署packages/api目录,可以用Yarn的工作区命令生成该包的专属锁文件:

  1. 回到Monorepo根目录,执行以下命令——它会在packages/api目录生成只包含该包生产依赖的yarn.lock:
    yarn workspaces focus api --production
    
  2. 把packages/api目录(包括新生成的yarn.lock)作为部署目录提交到仓库,或者直接用于DigitalOcean部署
    注意:这个命令需要Yarn 1.22及以上版本支持,每次api包的依赖更新后,都需要重新执行该命令生成新的锁文件。

最后可以检查下DigitalOcean部署日志里的工作目录,确认它是不是默认指向了packages/api,如果是的话,切换到根目录就能直接解决锁文件找不到的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 17:15:51