Dub 本地开发环境如何按推荐 Node v23.11.0 与 pnpm 9.15.9 版本搭建并跑通构建

📅 发布时间:2026/9/13 19:56:03
Dub 本地开发环境如何按推荐 Node v23.11.0 与 pnpm 9.15.9 版本搭建并跑通构建
Dub 本地开发环境如何按推荐 Node v23.11.0 与 pnpm 9.15.9 版本搭建并跑通构建【免费下载链接】dubThe modern link attribution platform. Loved by world-class marketing teams like Framer, Perplexity, Superhuman, Twilio, Buffer and more.项目地址: https://gitcode.com/GitHub_Trending/du/dubDub 是一个基于 Next.js 与 Turborepo monorepo 的开源链接归因平台本地跑通它之前最常见的两个坑是依赖版本不对和 Prisma 数据库状态没同步。官方 README.md 在 Contributing 一节明确给出了推荐版本Nodev23.11.0、pnpm9.15.9并且根目录 package.json 中通过packageManager: pnpm9.15.9固定了 pnpm 版本。本文按这两个版本走一遍从安装依赖、同步数据库到pnpm build跑通构建的完整路径适合刚 clone 仓库、准备贡献代码或做本地验证的开发者。环境准备固定 Node 与 pnpm 版本先确认本机版本与推荐值一致node -v pnpm -v预期分别输出v23.11.0和9.15.9。如果 pnpm 版本不匹配可以直接借助 packageManager 字段让工具链自动拉取对应版本corepack enable corepack prepare pnpm9.15.9 --activate版本不匹配不只是可能变慢的问题——README 把本地构建不正确明确归因为检查 node 与 pnpm 版本是否与推荐版本一致所以这一步是所有后续操作的判定基线。安装依赖在仓库根目录执行pnpm install这是一个 pnpm workspace见 pnpm-workspace.yaml包含apps/*和packages/*依赖会按 turbo.json 声明的 pipeline 在构建时按^build依赖顺序串联。README 建议的本地工作流里所有命令都从仓库根目录发起构建入口就是根 package.json 中的build: turbo build。同步数据库prisma:pushDub 的 Web 应用位于 apps/webPrisma 命令都挂在它的 package.json 里且都通过dotenv-flow -e .env读取环境变量prisma:generate生成 Prisma Clientschema 目录为./prisma/schemaprisma:push把 Prisma schema 状态直接推入数据库不使用迁移文件README 列出的第一个常见问题就是The table table-name does not exist in the current database.官方给出的处理方式是执行pnpm prisma:push。数据库本身是 MySQLPlanetScale 协议本地可以用仓库自带的 docker-compose.yml 起服务——该文件开头注释写明 This is meant for local development only. Do not use this in production.其中包含三个服务ps-mysqlmysql:8.0镜像数据库名planetscale映射3306端口planetscale-proxyPlanetScale HTTP 模拟器ghcr.io/mattrobenolt/ps-http-sim:latest监听3900端口mailhog本地邮件服务占用1025SMTP与8025Web 界面端口在apps/web目录启动docker compose up -dCI 中对应的连接方式可供参考见 .github/workflows/playwright.yaml 的环境变量DATABASE_URL: mysql://root:localhost:3306/planetscale与PLANETSCALE_DATABASE_URL: http://root:unusedlocalhost:3900/planetscale。把这两个值写进apps/web/.env后执行cd apps/web pnpm prisma:push如果构建或运行时还报table does not exist再执行一次prisma:push即可这是 README 给出的直接修复路径。跑通构建回到仓库根目录pnpm build这条命令对应turbo build会按 turbo.json 的 pipeline 先构建被依赖的 packages再构建apps/web其 build 脚本为pnpm prisma:generate next build见 apps/web/package.json。CI 中构建 Web 应用的方式是pnpm turbo build --filterweb.github/workflows/playwright.yaml效果等价于只针对 Web 应用及其上游包构建。构建成功的判定标准是命令正常退出、无报错输出若本地构建不正确按 README 的处理顺序处理确认node与pnpm版本与推荐值一致v23.11.0 / 9.15.9删除apps和packages目录下的所有node_modules、.next、.turbo目录——这是一次删除依赖与构建产物的操作执行前确认这些目录里没有你本地改动过的文件重新pnpm install再执行pnpm build。可选写入开发种子数据构建跑通后如果要在本地页面里看到数据README 提供了 Dev Seed Script它会往数据库写入开发和测试用的数据cd apps/web pnpm run script dev/seed这是基础模式只追加数据、不删除已有数据。如果要在干净状态上重建数据有截断模式的变体pnpm run script dev/seed --truncate注意--truncate会先删除数据库中全部现有数据脚本在删除前会要求你输入确认。只用于本地开发库不要指向任何含真实数据的库。已知问题对照现象README 给出的处理The table table-name does not exist in the current database.执行pnpm prisma:push把 Prisma schema 推入数据库本地构建不正确核对 Node v23.11.0 与 pnpm 9.15.9清理apps与packages下的node_modules、.next、.turbo后重新pnpm installpnpm build另外说明一点版本口径仓库 CI 工作流.github/workflows/playwright.yaml、.github/workflows/e2e.yaml目前统一使用 Node 20 跑测试而 README 面向贡献者的本地推荐版本是 Node v23.11.0。两处口径不同本地开发按 README 的推荐版本执行即可本文不自行合并这两个值。至此版本对齐、依赖安装、schema 推送与pnpm build全部走通本地开发环境即按推荐配置就绪。【免费下载链接】dubThe modern link attribution platform. Loved by world-class marketing teams like Framer, Perplexity, Superhuman, Twilio, Buffer and more.项目地址: https://gitcode.com/GitHub_Trending/du/dub创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考