介绍
Nub 是一个用 Rust 编写的 Node.js 全能工具包。运行 TypeScript 文件和脚本、安装依赖、管理 Node 本身——全部在原生 Node 上,无锁定。
Nub 是一个用 Rust 编写的 Node.js 全能工具包。一个二进制文件即可运行你的 TypeScript 文件和脚本、安装你的依赖、并提供 Node 本身——取代 node、npm/pnpm、npx 和 nvm,而无需采用新的运行时。
npm install -g --ignore-scripts=false @nubjs/nub
nub index.ts # 运行一个 TypeScript 文件
nub install # 安装依赖(兼容 pnpm)
nub run dev # 运行一个 package.json 脚本
nubx prisma generate # 运行 node_modules/.bin 中的 CLI无需采用新的运行时,也无锁定:每一项增强都基于 Node 自身的公共扩展接口,包管理器读取和写入你项目已有的锁文件格式。
工具包
- 运行时 — 使用完整的 TypeScript 支持在原生
node二进制文件上执行.{js,cjs,mjs,jsx,ts,cts,mts,tsx}文件。参见文件运行器。 - 包管理器 — 兼容 pnpm 的安装器,可往返兼容你现有的 npm、pnpm 或 bun 锁文件。参见安装。
- 脚本运行器 — 比
pnpm run快 24 倍运行package.json脚本,完整保留工作区和生命周期钩子功能。参见运行。 - CLI 运行器 — 比
npx快一个数量级运行本地 CLI,或从注册表获取并运行未安装的 CLI。参见 nubx。 - Node 版本管理器 — 锁定一个版本,Nub 按需从 nodejs.org 提供,取代
nvm和fnm。参见 Node。 - 监听器 — 当你的源码、
.env*文件和tsconfig.json发生变化时重启,由依赖图驱动。参见监听模式。 - GitHub Action — 将
actions/setup-node替换为nubjs/setup-nub,安装 Nub、预热项目的 Node、并在 CI 中缓存 Nub 的存储。参见 GitHub Action。
Nub 取代了什么
| Nub | 取代 |
|---|---|
nub <file> | node, tsx, ts-node, dotenv-cli |
nub run <script> | npm run, pnpm run, yarn run |
nubx | npx, pnpm dlx, pnpm exec, yarn dlx |
nub install | npm, pnpm, yarn |
nub watch | nodemon, node --watch, tsx watch |
nub node | nvm, fnm, n, volta |
nub pm | corepack |
安装
npm install -g --ignore-scripts=false @nubjs/nubpnpm add -g @nubjs/nub 和 yarn global add @nubjs/nub 也可以。这会安装 Rust 二进制文件和平台特定的 N-API 插件,并将 nub 和 nubx 放到你的 PATH 上。在 macOS 和 Linux 上,Homebrew 也可以:
brew install nubjs/tap/nub使用 mise,nub 和 nubx 都会出现在 PATH 上:
mise use -g nub对于容器,官方镜像 ghcr.io/nubjs/nub 是一个带有 Nub 的 node 基础镜像。参见 Docker:
FROM ghcr.io/nubjs/nub在 CI 中,将 actions/setup-node 替换为 setup-nub action:
- uses: actions/setup-node@v4
- uses: nubjs/setup-nub@v0包管理
安装器在 CLI 层面兼容 pnpm,并与你项目已有的锁文件兼容。它推断当前包管理器并模拟它——npm、pnpm 和 bun 锁文件可干净往返;yarn 为只读。
nub install # 解析 + 链接 node_modules 到已有锁文件
nub add -E -D react # 精确锁定、devDeps — pnpm 标志拼写
nub remove lodash
nub update
nub ci # 冻结锁文件安装这是可选的:继续使用你现有的包管理器,在其他方面使用 Nub。参见安装了解每个包管理器的锁文件保真度,参见 pm 了解如何提供项目锁定的确切包管理器版本。
系统要求
- Node 18.19+(Node 18 LTS)用于增强模式。
- macOS(arm64、x64)、Linux(x64、arm64)、Windows(x64、arm64)。
接下来
- 快速问答:FAQ。