近日,Vue.js 官方团队在 GitHub 上对核心仓库进行了一次重大调整:原主仓库 vuejs/vue 的 README 文件顶部新增了一行醒目标注——“This is the repo for Vue 2. For Vue 3, go to https://github.com/vuejs/core”。这一变化标志着 Vue 2 与 Vue 3 的代码管理正式走向独立,也意味着持续近三年的“双版本共仓”时代画上句号。
从“一仓两版”到各自安家
自 Vue 3 于 2020 年 9 月正式发布以来,其源代码一直与 Vue 2 共存于同一个 vuejs/vue 仓库中,通过不同的分支(如 master 分支对应 Vue 2、main 或 next 分支对应 Vue 3)进行维护。这种安排虽然便于老用户迁移、降低初期认知门槛,但也带来了日益突出的问题:随着 Vue 3 生态的快速成熟和持续迭代,两个版本的特性差异、issues 混淆、PR 冲突以及维护精力分散等矛盾愈发明显。开发者经常在同一个 issue 列表里看到 Vue 2 和 Vue 3 的混合报告,仓库的标签管理系统不堪重负。
Vue 团队并非没有意识到这一痛点。早在 2021 年底,核心成员尤雨溪就在 RFC(Request for Comments)中提议将 Vue 3 源码独立到 vuejs/core 仓库,并逐步将 Vue 2 的长期维护职责转移至另一个独立仓库 vuejs/vue。经过一年多的规划与准备,此次正式标注意味着最终落地:vuejs/vue 将仅保留 Vue 2 的代码和 issue 跟踪,而 vuejs/core 成为 Vue 3 的官方主仓库。
对开发者生态的直接影响
此次仓库分离对不同类型的开发者产生了差异化的影响:
-
Vue 2 存量用户:现有的 Vue 2 项目不会受到任何冲击。
vuejs/vue仓库仍会接收针对 Vue 2 的 bug 修复和安全补丁,而且由于不再混入 Vue 3 的代码,issue 列表更加单纯,查找问题效率有望提升。不过值得注意的是,Vue 2 已于 2023 年底进入“维护结束”(End of Life)阶段,官方仅提供关键安全修补,不再添加新功能。 -
Vue 3 新项目开发者:今后获取 Vue 3 源代码、提交 issue 或参与贡献,都应直接访问
github.com/vuejs/core。该仓库已于数月前开始全面承载 Vue 3 主线的开发,包括 Vue 3.4、Vue 3.5 的后续版本计划。团队表示,独立的仓库将允许更高效的分支管理和 CI 流程,加速新特性的落地。 -
开源贡献者:过去困扰许多贡献者的“该往哪个分支提 PR?”问题将彻底消失。Vue 2 的 PR 提交到
vuejs/vue的master分支,Vue 3 的 PR 提交到vuejs/core的main分支。仓库拆分后,代码审查流程更加清晰,维护者也能更精准地分配注意力。
技术进步与社区协作的必然选择
从软件工程角度看,大版本共仓模式在过渡期有其合理性,但长期来看弊大于利。Vue 3 引入了 Composition API、Fragment、Teleport 等大量新机制,源码结构与 Vue 2 已有显著差异,两者共享构建脚本、测试框架和 lint 规则时常常相互掣肘。例如,Vue 2 的构建工具链基于 Rollup 旧版本,而 Vue 3 已更新至更现代的打包方案,混用使得每次升级都需要额外兼容工作。
此外,Vue 3 的生态伙伴(如 Nuxt、Vite、Pinia)也已全面转向 Vue 3 阵营,社区焦点几乎完全转移。此时将 Vue 3 独立出来,既是对现实施开发效率的尊重,也预示着一场无声的交接:Vue 2 将逐渐走入历史,而 Vue 3 获得了一个完全属于它的“舞台”。
迁移路径与未来展望
对于仍在使用 Vue 2 的大型项目,官方推荐通过 @vue/compat(Vue 3 兼容构建)逐步迁移,该构建版本能在 Vue 3 运行时中模拟大部分 Vue 2 API,让团队在不中断服务的前提下平滑过渡。而坚决留在 Vue 2 的用户,vuejs/vue 仓库将继续提供 v2.7.x 系列的更新直至 2024 年底(根据现有 LTS 计划)。
值得注意的是,此次仓库调整并不影响 npm 包的获取方式。开发者通过 npm install vue 得到的依然是 Vue 3 稳定版(vuejs/core 发布),而 Vue 2 对应的 npm 包 vue@2 需要显式指定版本号。GitHub 仓库地址的变化不会破坏现有 CI 脚本,因为 npm 等包管理工具不依赖仓库 URL。
Vue 团队在官方博客中强调,仓库分离是一个“务实的决定”,旨在让两个版本的维护者能够“各自心无旁骛地工作”。随着 vuejs/core 成为 Vue 3 的新家园,我们有理由期待更快的迭代节奏、更清晰的社区协作以及更坚定的技术演进方向。对于正在学习或使用 Vue 的开发者而言,此刻的最佳行动或许是:书签栏里的 github.com/vuejs/vue 不变,但心中的主战场,已经悄然转移。