WP Engine 前脚刚收购 WPackagist,WordPress 官方就力推 WP Packages,真的是硬碰硬地杠上了!
之前我就在公众号和大家聊过:WP Engine 前脚刚收购 WPackagist,WordPress 官方就力推 WP Packages,真的是硬碰硬地杠上了! 没想到这个瓜还有后续,看来外国人也是不记过夜仇。😂
消息一出,WordPress 官方表示,不少开发者开始担心(看我用词):原本属于社区化的基础设施,一旦被商业公司掌控,未来会不会出现收费、功能限制、商业捆绑等各种不确定性。
显然,官方并不想让这种核心基础设施掌握在第三方商业公司手中。于是 WP Engine 前脚刚完成对 WPackagist 的收购,WordPress 官方仅隔四天就火速出手,正式推出并大力推荐 WP Packages,一套由官方背书、社区主导的全新 Composer 仓库方案。
时间点卡得这么紧,很难不让人觉得:这是真硬碰硬杠上了。

WPackagist 被收购让官方很不爽
对于使用 Composer、Bedrock 这类现代化开发工作流的开发者来说,WPackagist 几乎是必备工具。

它让开发者可以通过命令行管理插件、主题,实现依赖锁定、批量更新,是现代 WordPress 工程化开发的基石,并为 WordPress Composer 生态系统服务了十余年。
它让开发者可以通过命令行管理插件、主题,实现依赖锁定、批量更新,是现代 WordPress 工程化开发的基石,并且已经为 WordPress Composer 生态服务了十余年。
WP Engine 在收购后,其官方公告称会继续维护并投入资源改进 WPackagist,为开发者提供更稳定的服务。
但 WordPress 官方不要 WP Engine 觉得,官方要自己觉得一个长期中立、几乎所有现代化项目都在依赖的基础设施被一家私募股权支持的公司掌控,会带来一定的不确定性。
其实他们之间早就有很大的矛盾,喜欢吃瓜,对八卦感兴趣的同学可以看之前的文章:WP Engine 收购包管理工具 WPackagist,却引来 WordPress 官方怒喷!
特别是WP Engine 收购之后,立刻更新了 Composerinfo 字段,在所有开发者的终端中显示“WPackagist 现在由 WP Engine 维护“的提示,这种宣示主权的操作,是 WordPress 官方(特别是 Matt 个人)所不能忍的。

官方推出的替代方案:WP Packages
于是,WordPress 官方很快拿出了自己的替代品 WP Packages。

根据 WordPress 官方公告,WP Packages(原 WP Composer)是由官方支持、Roots 团队开发的 Composer 仓库服务,定位为传统包管理方案的现代化替代。
类似于 PHP 的依赖管理工具 Composer,WP Packages 专门用于管理 WordPress 插件和主题,WordPress.org 目录中的所有免费插件和主题都可以通过它来获取。
WordPress 官方宣称(本章结束之前都是):
WP Packages 是更符合现代 WordPress 开发的包管理方案,支持 Composer v2 的 metadata-url 协议,让 Composer 只获取项目实际需要的包元数据。
而 WPackagist 仍在使用旧的 provider-includes 方式,会强制 Composer 在解析依赖前先下载庞大的索引文件。
这就造成:WP Packages 的冷依赖解析速度大约快 17 倍:解析 10 个插件仅需 0.7 秒,而 WPackagist 则需要 12.3 秒。
除此之外,WP Packages 还使用带公共缓存头的 CDN 缓存,并提供不可变、按内容寻址的包文件。
命名更清爽:wp-plugin/ 和 wp-theme/,替代原来的 wpackagist-plugin/ 和 wpackagist-theme/。
元数据也更完整,包含插件 / 主题作者、描述、主页链接等 WPackagist 多年缺失的信息。
同步频率更高:每 5 分钟同步一次,而 WPackagist 大约 90 分钟 才同步一次。
切换超简单,一行脚本就能搞定
从 WPackagist 切换到 WP Packages 只需要几个终端命令。
- 移除您现有的 WPackagist 软件包:
composer remove wpackagist-theme/twentytwentyfive
- 移除 WPackagist 仓库并添加 WP Packages:
composer config --unset repositories.wpackagist && composer config repositories.wp-composer composer https://repo.wp-packages.org
- 需要使用新命名方式的软件包:
composer require wp-theme/twentytwentyfive
或者使用迁移脚本自动更新您的 composer.json:
curl -sO https://raw.githubusercontent.com/roots/wp-packages/main/scripts/migrate-from-wpackagist.sh && bash migrate-from-wpackagist.sh
吃瓜不停歇
WP Engine 收购 WPackagist 之后不久,WordPress 官方就正式推出并推荐 WP Packages,不到四天时间,很难不让人认为是直接杠上了。
一边是商业公司持续运营原有工具,一边是官方联合社区推出新方案,至于哪个更适合开发者使用,大家可以根据各自项目需求自行选择。
我个人觉得,这个工具本身其实并不会有多么广泛的用途,至少在这场瓜出来之前,很多人根本没听说过。而 WordPress 官方,或者说 Matt 本人,纯粹就是看不惯 WP Engine,能 “搞他一下” 就很开心,顺便高举开源大旗,懂的都懂。