Cli

pnpm 脚本参考

Nebutra-Sailor 中所有 Turborepo 编排 pnpm 脚本的完整参考。

所有脚本均由 Turborepo 编排,除特别说明外,均从 monorepo 根目录运行。

# 从 monorepo 根目录运行任意脚本
pnpm <script>

# 为特定包运行脚本
pnpm --filter @nebutra/ui typecheck
pnpm --filter apps/web dev

开发

脚本说明
pnpm dev同时启动所有应用
pnpm dev:dashboardWeb(3000)+ Admin(3002)+ API 网关(3001)
pnpm dev:marketing落地页(3002 端口)+ Sanity Studio(3333 端口)
pnpm dev:ai-saas全部 6 个 AI SaaS 应用
pnpm dev:overseas国际化语言应用(4 个应用)
pnpm dev:growth增长类应用(3 个应用)
pnpm dev:creative创意套件应用(2 个应用)
pnpm dev:blog博客应用(2 个应用)
pnpm dev:community社区平台应用(3 个应用)
pnpm dev:solo独立开发者套件(4 个应用)
pnpm dev:design设计工具(2 个应用)

构建

脚本说明
pnpm build所有应用的生产构建
pnpm build:ai-saas构建 AI SaaS 预设(6 个应用)
pnpm build:marketing构建营销预设(3 个应用)
pnpm build:dashboard构建仪表板预设(3 个应用)

代码质量

脚本说明
pnpm typecheckTypeScript 类型检查(turbo,全部包)
pnpm lintBiome lint(全部包)
pnpm lint:fix自动修复 lint 问题
pnpm formatBiome 格式化(全部包)

测试

脚本说明
pnpm test运行所有 Vitest 单元测试
pnpm test:watch监听模式
pnpm test:coverage含覆盖率报告(80% 阈值)
pnpm test:arch架构合规测试
pnpm e2ePlaywright E2E 测试

数据库

脚本说明
pnpm db:generate重新生成 Prisma 客户端
pnpm db:migrate运行待执行迁移
pnpm db:push直接推送 schema(不生成迁移)
pnpm db:studio启动 Prisma Studio GUI

基础设施

脚本说明
pnpm infra:up启动完整 Docker 服务栈(PG + Redis + ClickHouse + Meilisearch)
pnpm infra:lite启动精简栈(仅 PostgreSQL——最快启动)
pnpm infra:down停止所有服务
pnpm check-env验证环境变量

品牌与设计

脚本说明
pnpm brand:sync跨包同步品牌资产
pnpm brand:init初始化品牌配置
pnpm brand:apply将品牌更改应用到所有包
pnpm brand:palette交互式调色板生成器
# 生成自定义调色板
node scripts/generate-palette.mjs --primary=#7C3AED --secondary=#F59E0B

API 与类型

脚本说明
pnpm generate:api-types从 OpenAPI 规范重新生成 TypeScript 类型
pnpm docs:cli自动生成 CLI 参考文档

预设与配置

脚本说明
pnpm preset:env通过交互式 CLI 配置当前激活的预设

发布与版本管理

脚本说明
pnpm version:packages基于 changesets 更新包版本号
pnpm release发布包到 npm 注册中心
# 标准发布流程
pnpm version:packages   # 根据 changesets 更新版本号
git push --follow-tags
pnpm release            # 发布到 npm

包体积分析

脚本说明
pnpm size检查包体积是否超出预算
pnpm size:why详细的包体积组成分析

治理与合规

脚本说明
pnpm license:check审计生产依赖许可证
pnpm ui:validate-policy验证 UI Token 治理策略
pnpm ui:verify-governance严格治理验证

常用命令组合

# 完全重置(全新开始)
pnpm infra:down
pnpm infra:up
pnpm db:migrate

# 提交前检查
pnpm typecheck && pnpm lint && pnpm test

# 拉取代码后
pnpm install
pnpm db:generate
pnpm db:migrate

# Storybook 开发
pnpm --filter @nebutra/storybook dev

# 生产就绪检查
pnpm build && pnpm test && pnpm e2e

Filter 语法

使用 --filter 定向到特定应用或包:

# 按包名
pnpm --filter @nebutra/ui typecheck
pnpm --filter @nebutra/billing test

# 按应用名(不含 @)
pnpm --filter landing dev
pnpm --filter web build

# 多个过滤器
pnpm --filter @nebutra/ui --filter @nebutra/tokens build

# 在所有包中运行脚本
pnpm -r typecheck

Turborepo 缓存

Turborepo 会在本地(可选远程)缓存任务输出。缓存命中时显示 cache hit, replaying output

# 强制重新执行,绕过缓存
pnpm build --force

# 远程缓存(需要 Vercel 账号)
pnpm dlx turbo login
pnpm dlx turbo link

How is this guide?

目录