前几天,前端工具链又杀出来一个狠角色。这次不是 Bun,不是 Deno,也不是某个新的运行时,而是一个叫 Nub 的 Node.js 工具链。

它刚进入公测,作者是 colinhacks(Zod 的作者)。一句话概括:Nub 想做一个更快、更现代,但不替代 Node 的 JavaScript 工具链。
这点很关键。过去几年,很多新工具都想替代 Node。Bun 想用全新运行时整合包管理器、打包器、测试工具等;Deno 想从安全、标准库、TypeScript 支持等方向重新设计体验。但 Nub 的思路不一样——它不是重新造一个运行时,而是直接站在 Node 上,做增强而非替代。
01 Nub 是什么?
官方给 Nub 的定位是:一个 all-in-one Node.js toolkit。

它是一个 Rust 写的单文件工具链,可以替代日常开发中的一堆常用命令:
nub index.ts:直接运行 TypeScript 文件nub run dev:运行 package.json scriptsnubx prisma generate:替代 npx / pnpm dlxnub install:安装依赖nub watch src/server.ts:文件变化自动重启nub node install 26:管理 Node 版本
平时一个 Node 项目里,经常会混用 node、npm run、pnpm run、npx、tsx、nodemon、nvm、corepack 等。Nub 想把这些压成一个命令。它和传统包管理器最大的区别在于:pnpm 主要解决依赖安装和 workspace,npx 主要解决临时执行 CLI,tsx 主要解决 TS 直跑,nvm 主要解决版本切换,而 Nub 想把这些放到一起。
02 号称比 pnpm run 快 24 倍
这次 Nub 最容易出圈的点就是速度。

官方给了几个非常夸张的数据。第一个是 nub run,号称比 pnpm run 快 24 倍。
为什么?因为 npm run、pnpm run 本身也是 Node 程序。每次执行 script,都要先启动包管理器,加载配置、解析 workspace、处理脚本环境,然后才真正执行命令。这中间会有几百毫秒的额外开销,在 monorepo 里如果几十个包都要跑脚本,开销会被放大多次。
Nub 的做法是用 Rust 实现 script runner,尽量把启动开销压下去。官方 benchmark 里,nub run 开销约 14ms,而 npm run 是 300ms+,pnpm run 更高。这意味着命令启动这一层,几乎变成瞬时响应。
03 nubx:更快的 npx
第二个重点是 nubx。

它可以理解成一个更快的 npx。平时经常写的 npx eslint .、npx prisma generate、npx tsc --noEmit 等,npx 自己也有启动成本。即使只是执行一个简单的本地 CLI,也要先跑一套 Node 包管理器逻辑。
Nub 的 nubx 会优先从本地 node_modules/.bin 找命令,然后直接执行。官方数据:nubx 约 11ms,npx 200ms+。尤其现在很多项目 CLI 调用越来越多(eslint、prettier、vite、vitest、tsc、prisma 等),每天高频执行,体验差异就出来了。
04 nub install:增量采用
Nub 也内置了包管理能力。

这个部分最重要的不是“又多了一个包管理器”,而是它强调兼容现有项目。如果项目现在用的是 package-lock.json、pnpm-lock.yaml 或 bun.lock,Nub 会尝试读取并写回已有的 lockfile,而不是强行生成新的 Nub 专属 lockfile。
这点很聪明。前端团队最怕的不是工具不够快,而是迁移成本太高。一旦要求改 lockfile、改 CI、改所有脚本、改开发习惯,再快也很难落地。Nub 的切入点是:可以先不迁移包管理器,只把 nub run / nubx 用起来,支持增量采用。
05 默认安全
最近 npm 生态的供应链安全问题越来越多,尤其是各种 postinstall 脚本攻击。Nub 在 install 上默认更保守:依赖的 lifecycle scripts 默认不执行,除非明确批准。它还加入了新版本冷却时间、来源校验、非 registry 传递依赖阻止等机制。
它不只是追求快,也在试图解决 Node 包管理器长期存在的安全问题。这和 npm v12 计划默认阻止危险生命周期脚本的方向很像。
06 和 Bun 最大的区别
Bun 是一个新的 JavaScript runtime,Nub 底层还是 Node。这意味着 Nub 不需要重新实现一套 Node 兼容层,也不需要你赌一个新的生产运行时。你的代码最后还是跑在真实 Node 上。
Nub 更像是给 Node 套了一层现代开发体验:TypeScript 直跑、.env 自动加载、watch 自动重启、npx/npm run/包管理加速、Node 版本管理。
它的核心卖点不是“我比 Node 更像未来”,而是:你继续用 Node,但体验别再这么原始。
如何安装使用?
官方给的安装方式很简单:
npm install -g --ignore-scripts=false @nubjs/nub
然后就可以直接使用:
nub index.ts
nub run dev
nubx eslint .
nub install
也可以把它加到 CI 里,用 nubjs/setup-nub 替代 actions/setup-node。
写在最后
Nub 最值得关注的不是“比 pnpm 快多少倍”,也不是“能不能干掉 npx”。真正关键的是:Node 工具链正在被重新整理。
以前习惯了一个项目塞十几个工具,每个解决一个小问题。现在越来越多新工具在往一个方向走:一个二进制、一个入口、覆盖开发、安装、运行、调试、CI。Bun 是这样,Deno 是这样,现在 Nub 也来了。区别在于,Nub 不想替代 Node,它想把 Node 变得更好用。