Nub 是一个用 Rust 编写的 Node.js 全能工具包。一个二进制文件即可运行你的 TypeScript 文件和脚本、安装你的依赖、并提供 Node 本身——取代 nodenpm/pnpmnpxnvm,而无需采用新的运行时。

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 提供,取代 nvmfnm。参见 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
nubxnpx, pnpm dlx, pnpm exec, yarn dlx
nub installnpm, pnpm, yarn
nub watchnodemon, node --watch, tsx watch
nub nodenvm, fnm, n, volta
nub pmcorepack

安装

npm install -g --ignore-scripts=false @nubjs/nub

pnpm add -g @nubjs/nubyarn global add @nubjs/nub 也可以。这会安装 Rust 二进制文件和平台特定的 N-API 插件,并将 nubnubx 放到你的 PATH 上。在 macOS 和 Linux 上,Homebrew 也可以:

brew install nubjs/tap/nub

使用 misenubnubx 都会出现在 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