创业不到两年,尤雨溪把 VoidZero 卖了。买家是硅谷巨头,收购后 Vite 继续开源,团队继续主导开发。这件事在国内开源圈找不到第二个参照——我们更熟悉的剧本是:做免费工具、接外包养项目、维持不下去就放弃。
VoidZero 的完整路径提供了一个值得拆解的样本:开源项目 → 商业公司 → 被收购 → 项目与团队双双保留。这中间每一步的选择,比最终结果更值得看。
Vite 为什么能撑起一家公司
Vite 在 2020 年发布后迅速替代 Webpack 成为前端构建的主流选择,这不是偶然。它踩中了三个时机:
- ESM 原生支持成熟:浏览器广泛支持 ES modules,开发阶段不再需要打包,冷启动从分钟级降到秒级。
- Rollup 生态完善:生产构建用 Rollup,插件体系已经足够丰富,迁移成本可控。
- Vue/React/Svelte 三方通吃:Vite 不绑定框架,社区插件覆盖了主流场景,用户基数远超单一框架工具。
用户基数是商业化的前提。Vite 的 npm 周下载量在 2024 年已经超过 1500 万,这个量级意味着企业用户足够多,付费意愿可以被验证。
VoidZero 的商业化路径
尤雨溪没有走 "开源 + 云服务" 的经典路线(比如 Supabase、Cal.com),而是选择了更直接的路径:
- Vite 核心保持开源免费,不设商业版限制。
- 围绕构建工具链做企业级产品——Rolldown(Rust 版 Rollup)、Oxc(Rust 版 JS 工具链)等项目填补了 Vite 在大规模项目中的性能瓶颈。
- 用 Rust 重写关键路径,性能提升本身就是企业付费的理由——构建时间从 30 秒降到 3 秒,对 CI/CD 成本和团队效率的影响是可量化的。
这条路径的关键决策是:不把开源核心变成收费产品,而是在核心之上做增量。企业用户不会因为 Vite 突然收费而被迫迁移,但会为了更快构建付费买 VoidZero 的方案。
国内开源作者的困局
对比之下,国内独立开源作者常卡在三个环节:
- 用户基数不够:项目多面向国内开发者,全球影响力有限,企业客户少。
- 商业化方向模糊:要么做 SaaS 但缺乏运营能力,要么做咨询但时间被外包挤占。
- 退出路径缺失:没有被收购的先例,也没有投资人认可的开源公司估值模型。
结果是:项目在 "免费维护 → 精力枯竭 → 停止更新" 的循环里打转。这不是作者不够努力,是生态结构的问题。
用 Vite 起步:一个最小可运行的实践
不管你是在做开源项目还是内部工具,选 Vite 作为构建底座是一个低风险、高扩展性的起点。下面是一个完整的 Vite + React 项目搭建流程,可以直接复制运行:
# 创建项目(Node >= 18)
npm create vite@latest my-tool -- --template react-ts
cd my-tool
npm install
npm run dev
# 浏览器打开 http://localhost:5173,冷启动 < 1 秒
生产构建验证:
npm run build
# 输出在 dist/,默认用 Rollup 打包 + tree-shaking
如果你打算把这个项目做成开源工具并逐步积累用户,加一个库模式配置。把你的核心逻辑抽成独立包,Vite 支持库打包:
// vite.config.ts — 库模式配置
import { defineConfig } from 'vite';
import dts from 'vite-plugin-dts';
export default defineConfig({
plugins: [dts()], // 自动生成 .d.ts 类型声明
build: {
lib: {
entry: 'src/index.ts', // 库入口
name: 'MyTool',
formats: ['es', 'cjs'], // 输出 ESM + CJS 双格式
fileName: (format) => `my-tool.${format === 'es' ? 'mjs' : 'cjs'}`,
},
rollupOptions: {
external: ['react'], // 不把 react 打进产物
},
},
});
# 打包后检查产物
npm run build
ls dist/
# 应看到: my-tool.mjs my-tool.cjs index.d.ts
这个配置让你的工具从第一天就具备 npm 发布条件。积累用户的第一步不是做 SaaS,是让工具本身足够好用、足够容易安装。
从工具到公司:需要验证的三个前提
VoidZero 的路径不是万能公式,但可以提炼出可复用的验证清单:
| 前提 | 验证方式 | Vite 的对应事实 |
|---|---|---|
| 用户基数够大 | npm 周下载 > 100 万,GitHub star > 10k | 周下载 1500 万+,star 70k+ |
| 企业场景真实 | 有用户反馈构建慢、CI 成本高 | 大型 monorepo 构建 30+ 秒是常见痛点 |
| 增量可收费 | 性能提升可量化,企业愿意为省时间付费 | Rust 重写后构建时间降 5-10x |
如果你在做开源项目,先对照第一行:用户基数是否到了可以谈商业化的门槛?如果没到,重心应该放在降低安装门槛和提升文档质量上,而不是急着做付费版。
风险提示:被收购不是唯一的好结局。VoidZero 能被收购,前提是 Vite 的用户基数和 Rust 工具链的技术壁垒同时成立。大多数开源项目不具备这两个条件,强行走 "做公司 → 等收购" 的路径,大概率会在融资阶段耗尽精力。更务实的路线是:先把工具做到足够好,让用户自然增长,商业化选项在用户基数达标后再打开。
尤雨溪的故事不是鸡汤,是一组可拆解的条件和决策。对照你自己的项目,看哪些条件已经满足、哪些还在缺位,比感叹 "国内没有第二个" 更有用。