pkg.pr.new 是什么?
-
pkg.pr.new 是一个为 GitHub 仓库提供**即时预览包(preview packages)**的服务。
-
每当有新的 commit 推送或 Pull Request 创建时,它会自动生成一个可通过 npm 兼容 URL 直接安装的临时包。
- 示例:
npm i https://pkg.pr.new/vite@main
- 示例:
-
支持与 StackBlitz WebContainers 集成,允许用户在完全隔离的浏览器环境中试用这些预览包。
存储管理策略
-
pkg.pr.new 不是永久包注册表,而是临时预览服务。
-
自动清理机制:
- 超过 1 个月未被下载 的包会被删除。
- 超过 6 个月 的包也会被自动移除。
-
这一策略有效控制了存储成本,未来在 Cloudflare 支持下可适当放宽限制。
用 pkg.pr.new 快速验证 Element Plus 的 Tree 内存泄漏修复
背景:一个真实的性能问题
在 Element Plus 的 PR #23055 中,开发者 @rzzf 发现并修复了一个 el-tree 组件在数据更新后可能引发内存泄漏 的问题。
这个问题的表现是:
- 当频繁更新 tree 的 data 时,旧节点引用未被正确释放;
- 导致内存持续增长,尤其在 Chrome 130 等新版本浏览器中更为明显(见 Issue #23059)。
修复本身并不复杂------关键在于确保事件监听器和节点缓存在数据变更时被清理。但作为用户或 Reviewer,我们最关心的是:
这个修复真的有效吗?我能不能在自己的项目里快速试一下?
传统方式 vs pkg.pr.new
过去,要测试一个未发布的 PR,你需要:
- 拉取 PR 分支;
- 本地构建 element-plus;(切对应的node环境,繁琐)
- 链接到你的项目(
npm link或yalc); - 重启开发服务器......
整个过程繁琐且容易出错。
而现在,有了 pkg.pr.new,一切变得极其简单。
一行命令,直接安装 PR 构建包
对于 PR #23055,你可以直接运行:
shell
npm install https://pkg.pr.new/element-plus/element-plus@23055
pnpm add https://pkg.pr.new/element-plus/element-plus@23055
yarn add https://pkg.pr.new/element-plus/element-plus@23055
✅ 这个 URL 会自动指向该 PR 对应的最新 CI 构建产物,完全兼容 npm 安装流程。
等到官方发布了 最新的版本, 可以重新回归到 正常的版本号的 正轨
生态支持
- 已生成 超过 100 万个预览包
结语
PR #23055 不仅修复了一个关键的内存问题,更展示了现代开源项目的高效协作范式:
代码提交 → 自动构建 → 在线预览 → 社区验证 → 合并发布