脚本之家 设为“星标⭐”
第一时间收到文章更新
出处:前端之神(ID:Sunshine_Lin_God)
搞前端的朋友们,是不是都有过这样的经历:改完一行代码,想跑个测试,结果光等依赖安装就花了几分钟。尤其是大项目,npm install 慢得让人想砸键盘。
最近,mise 的作者 @jdx 又整了个新活儿——Aube
,一个用 Rust 从零实现的 Node.js 包管理器。名字来自法语,意思是“黎明”。听起来有点浪漫,但它的性能数据可一点都不温柔。
性能到底有多炸裂?
官方基准测试基于一个约1400个依赖的真实项目,结果相当有冲击力:
热安装场景(清空node_modules但保留缓存) :
更夸张的是脚本重复执行环节。已经安装好依赖的情况下,再跑一次测试:
对比pnpm提升了约37倍,对比Bun也有4倍以上的优势。
整体做到了毫秒级启动,内存和CPU开销控制得极低。
💡 简单说:你眨个眼的功夫,依赖已经装好了。
四个亮点,解决真实痛点
1. 锁文件全兼容,迁移零成本
这一点可能是最打动人的。
Aube 原生支持读取和写入 npm、pnpm、Yarn、Bun 的各类锁文件,不用修改项目配置,老项目直接拿来用。
什么意思?你可以在本地用 Aube 享受速度,团队里用 pnpm 的同事完全无感,CI 也照常跑。不用说服全团队统一切换工具链——这大概省掉了最难的那部分工作。
2. 脚本安全沙箱,给项目加一道防线
依赖包的安装脚本(postinstall 之类)一直是供应链攻击的重灾区。
Aube 内置了生命周期脚本沙箱隔离机制。默认情况下,依赖的构建脚本需要明确审批才能运行;即使审批通过,脚本也只能在受限环境中执行——文件读写被限制在包目录内,网络访问默认禁止。
在 macOS 上通过 Seatbelt 实现,Linux 上通过 Landlock 和 seccomp 实现。如果内核无法强制执行沙箱,脚本直接失败,而不是放行。
3. 单二进制分发,跨平台即用
整体打包为独立二进制文件,无额外依赖,全平台直接运行。
安装方式也很灵活:
# 推荐:通过 mise 安装
mise use -g aube
# npm 全局安装
npm install -g --ignore-scripts=false @endevco/aube
# Mac Homebrew
brew install endevco/tap/aube
4. 智能脚本执行,不用再记“先装再跑”
Aube 提供了 aubr 命令(aube run 的缩写),会自动校验依赖状态:如果依赖没变,直接跳过安装,立刻执行脚本。
日常开发中,你甚至不需要单独跑 aube install——直接 aubr test、aubr build 就行,它会自己判断要不要先装依赖。
哪些场景值得一试?
- 大型前端工程:依赖多、安装慢的项目,Aube 的热安装优势最明显
- CI/CD 流水线:毫秒级安装意味着流水线能快一大截
- 存量项目改造:不用动锁文件,先在本地试试水,零风险
- 安全要求高的团队:沙箱机制给依赖安装加了一层实实在在的防护
一点提醒
Aube 目前仍处于 beta 阶段,冷安装(完全无缓存)的速度暂时还落后于 Bun。但它瞄准的是日常开发中最常见的场景——热安装和重复执行。在这个场景下,它的表现确实让人印象深刻。
如果你对现有的安装速度不满意,又不想折腾团队迁移,Aube 值得花十分钟试试。
🔗 官网:https://aube.en.dev/
🔗 GitHub:https://github.com/endevco/aube