找回密码
 立即注册
首页 业界区 业界 turbo迁移vite-plus实践

turbo迁移vite-plus实践

啦迩 8 小时前
Turbo 是一个高性能的构建系统,结合 pnpm monorepo 使用非常流行。它通过任务调度与缓存机制,大幅提升多仓库开发体验。
vite+(vite-plus) 则提供了一套统一的工具链(vite、vitest、oxlint、oxfmt、rolldown、tsdown、vite task 等),将所有配置集中到 vite.config 中进行管理,从而解决生态碎片化问题。
Turbo 迁移到 vite+ 的核心收益也在于此:不仅可以实现与 Turbo 类似的任务调度与缓存能力,还能无缝融入 Vite 生态。从长期来看,这一方向具备很大的发展潜力。
一、移除 Turbo 相关配置

首先,清理项目中所有 Turbo 相关内容:

  • 移除依赖:pnpm remove turbo
  • 删除配置文件:turbo.json
  • 删除缓存目录:.turbo(包括根目录及各 packages 子目录)
  • 清理 .gitignore 中的相关配置: .turbo

二、安装与配置 vite+

1. 安装 vite+
  1. # Windows(PowerShell)
  2. irm https://vite.plus/ps1 | iex
  3. # macOS / Linux
  4. curl -fsSL https://vite.plus | bash
复制代码
⚠️ 由于当前项目是基于 Turbo 做任务调度的,因此无法直接使用 vp migrate 自动迁移,需要手动调整配置。
2. 依赖迁移

情况一:使用 workspace 的 catalog / catalogs 管理依赖
  1. catalog:
  2. - vite: ^8.0.0
  3. + vite: npm:@voidzero-dev/vite-plus-core@latest
  4. - vitest: ^4.1.0
  5. + vitest: npm:@voidzero-dev/vite-plus-test@latest
  6. + vite-plus: ^0.1.12
  7. # catalogs 同理
  8. + overrides:
  9. +   vite: npm:@voidzero-dev/vite-plus-core@latest
  10. +   vitest: npm:@voidzero-dev/vite-plus-test@latest
复制代码
情况二:直接在 package.json 中管理依赖
  1. {
  2.   "devDependencies": {
  3. -   "vite": "^8.0.0",
  4. -   "vitest": "^4.1.0",
  5. +   "vite": "npm:@voidzero-dev/vite-plus-core@latest",
  6. +   "vite-plus": "latest",
  7. +   "vitest": "npm:@voidzero-dev/vite-plus-test@latest"
  8.   },
  9.   "pnpm": {
  10. +   "overrides": {
  11. +     "vite": "npm:@voidzero-dev/vite-plus-core@latest",
  12. +     "vitest": "npm:@voidzero-dev/vite-plus-test@latest"
  13. +   }
  14.   }
  15. }
复制代码
3. vite.config 配置
  1. - import { defineConfig } from 'vite'
  2. + import { defineConfig } from 'vite-plus'
  3. export default defineConfig({
  4.   run: {
  5.     tasks: {...}, // 任务调度
  6.     cache: {...}, // 缓存
  7.   },
  8.   fmt: {...},   // 使用 oxfmt,替代 prettier
  9.   lint: {...},  // 使用 oxlint,替代 eslint
  10.   test: {...},  // vitest
  11.   pack: {...},  // tsdown(库打包,类似 tsup / rollup)
  12.   staged: {...} // 替代 lint-staged
  13. })
复制代码
三、任务调度与缓存

由于本文实践是 从 Turbo 迁移到 vite+,这里重点说明任务调度与缓存的实现方式。
项目结构
  1. apps/
  2.   └─ playground
  3. packages/
  4.   ├─ module-a
  5.   └─ module-b
复制代码
Turbo 原配置
  1. {
  2.   "$schema": "https://turborepo.com/schema.json",
  3.   "tasks": {
  4.     "build": {
  5.       "outputs": ["dist/**"]
  6.     },
  7.     "dev": {
  8.       "persistent": true,
  9.       "cache": false,
  10.       "dependsOn": ["^build"],
  11.       "interactive": false
  12.     }
  13.   }
  14. }
复制代码
vite+ 实现方式

<blockquote>

来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

相关推荐

您需要登录后才可以回帖 登录 | 立即注册