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

使用pnpm和Turbo构建生产环境时无法排除开发依赖的问题

解决方案

核心思路

Turbo 构建 TypeScript 项目时,必须依赖开发依赖(比如 typescript、各类 @types/* 类型包、编译相关工具)才能完成代码编译,所以构建阶段不能使用 pnpm install --prod,正确的流程应该是先全量安装依赖完成构建,再单独生成仅含生产依赖的部署包。


具体步骤

1. 完整安装依赖并执行构建

先安装所有依赖(包括开发依赖),确保 Turbo 能完成 TypeScript 编译:

pnpm install
turbo build

2. 生成仅含生产依赖的部署包

构建完成后,用 pnpm 的部署命令生成干净的生产环境目录,自动排除开发依赖:

pnpm deploy --prod ./dist-deploy

这个命令会在 ./dist-deploy 目录下生成包含项目生产代码、生产依赖的完整部署包,无需手动处理依赖。

3. CI/CD 场景优化

如果是在 CI/CD 流程中,可以分阶段执行,避免重复安装:

# 安装所有依赖用于构建
pnpm install --frozen-lockfile
# 执行构建
turbo build
# 清理现有依赖,重新安装生产依赖(可选,或直接用deploy命令)
pnpm install --prod --frozen-lockfile

为什么全局安装 Turbo 没用?

Turbo 只是构建调度工具,TypeScript 编译依赖的是项目本地的 typescript 包、tsconfig.json 配置以及各类类型定义文件,这些都属于开发依赖。全局 Turbo 运行时依然会调用项目本地的依赖,所以缺少开发依赖必然导致构建失败。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 17:32:38