一款跨平台、可通过插件扩展的开发环境版本管理工具,支持 Node.js、Java、Go、Python 等。
- Star
- 19,511
- Fork
- 759
- 未关闭 Issue
- 1
- 最近提交
- 20天前
这是什么?
n 是一个管理多个 Node.js 版本的命令行工具。运行 `n <version>` 即可下载并启用指定版本,`n lts` 安装最新的长期支持版本,不带参数运行 `n` 则可以用方向键从已缓存的版本中选择。它不使用子 shell,也不需要修改 shell 配置文件,当前生效的版本就是链接到 PATH 前缀下的那个版本。
版本号支持完整或不完整的写法(如 `8`、`v6.1`),也支持 `lts`、`latest`、`current` 等标签、发行代号、nightly 构建,以及自动读取 `.n-node-version`、`.node-version`、`.nvmrc` 或 package.json 中 `engines` 字段的 `auto` 模式。已下载的版本会保留在缓存中,可以快速重装,也可以通过 `n run` 运行或用 `n exec` 临时执行命令。
该工具支持 macOS、Linux、WSL 及其他类 Unix 系统,可通过 npm、Homebrew 或 MacPorts 安装。通过 `N_NODE_MIRROR` 可以设置自定义镜像,适合默认下载源较慢的地区;对于 Alpine 等需要特定架构的场景,也可以手动指定架构。
核心功能
- 01通过 `n lts`、`n 20` 等单条命令安装并切换 Node.js 版本。
- 02提供交互式界面,用于选择、安装或删除缓存中的版本。
- 03可从 .n-node-version、.node-version、.nvmrc 或 package.json 的 engines 字段读取目标版本。
- 04无需重新安装,即可用 `n run`、`n which` 或 `n exec` 运行或定位已缓存的版本。
- 05支持通过环境变量设置自定义镜像和指定系统架构。
适用场景
- 在开发机上为多个项目切换不同的 Node.js 版本。
- 在 CI 或 Docker 容器中安装指定版本,并通过 `--cleanup` 清理缓存。
- 使用区域镜像替代默认下载源,改善下载速度。
- 用 `n exec` 在指定 Node.js 版本下运行项目脚本。
快速上手
- 1
通过 npm 安装 n(需已安装 Node.js)
npm install -g n - 2
安装最新的 LTS 版 Node.js
n lts
使用前须知
- 仅支持 macOS 和 Linux(包括 WSL),不支持 PowerShell 等原生 Windows 终端。
- 默认安装到 /usr/local 时可能需要修改目录权限或设置自定义 N_PREFIX。
收录于专题
标签
常见问题
- n 是什么?
- 一个基于 Bash 的极简命令行工具,用于在 macOS 和 Linux 上安装、切换和删除多个 Node.js 版本。 n 是一个管理多个 Node.js 版本的命令行工具。运行 `n <version>` 即可下载并启用指定版本,`n lts` 安装最新的长期支持版本,不带参数运行 `n` 则可以用方向键从已缓存的版本中选择。它不使用子 shell,也不需要修改 shell 配置文件,当前生效的版本就是链接到 PATH 前缀下的那个版本。
- n 可以免费使用吗?用的什么许可证?
- n 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
- n 还在维护吗?
- 活跃维护中。n 最近一次提交是在 2026年10月18日。
- n 适合用来做什么?
- 在开发机上为多个项目切换不同的 Node.js 版本。 在 CI 或 Docker 容器中安装指定版本,并通过 `--cleanup` 清理缓存。 使用区域镜像替代默认下载源,改善下载速度。 用 `n exec` 在指定 Node.js 版本下运行项目脚本。
- n 怎么安装和运行?
- 通过 npm 安装 n(需已安装 Node.js): npm install -g n 安装最新的 LTS 版 Node.js: n lts
- 在哪里获取 n?
- 源代码和安装说明在 GitHub 上:https://github.com/tj/n
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
一个用 Rust 编写的命令行工具,通过一个 mise.toml 文件管理项目工具、环境变量和任务。
面向 Windows 的 Node.js 版本管理工具,可安装并切换多个 Node.js 版本。
一个符合 POSIX 标准的 bash 脚本,用于在用户和 shell 级别安装并切换多个 Node.js 版本。
可通过插件扩展的命令行工具,按项目统一管理多种语言运行时版本。
一个基于 Python 的工具,用于创建相互隔离的 Node.js 虚拟环境,可与 Python virtualenv 集成。