17个稳定版本
新 1.37.1 | 2024年8月11日 |
---|---|
1.35.1 | 2023年8月16日 |
1.35.0 | 2023年7月20日 |
1.33.1 | 2023年1月28日 |
1.22.8 | 2020年11月22日 |
#83 in 开发工具
1,142 个月下载量
用于 learnwy_bin_utils
195KB
5.5K SLoC
快速Node管理器 (fnm
)

🚀 快速简单的Node.js版本管理器,用Rust编写
功能
🌎 跨平台支持(macOS、Windows、Linux)
✨ 单个文件,易于安装,快速启动
🚀 专注于速度
📂 与 .node-version
和 .nvmrc
文件一起使用
安装
使用脚本(macOS/Linux)
对于 bash
、zsh
和 fish
终端,有一个 自动安装脚本。
首先确保你的操作系统中已经安装了 curl
和 unzip
。然后执行
curl -fsSL https://fnm.vercel.app/install | bash
升级
在macOS上,只需执行 brew upgrade fnm
即可。
在其他操作系统中,升级 fnm
与安装它几乎一样。为了防止在shell配置文件中重复,请在安装命令中添加 --skip-shell
。
参数
--install-dir
为fnm设置一个自定义的安装目录。默认目录是 $XDG_DATA_HOME/fnm
(如果 $XDG_DATA_HOME
未定义,则回退到Linux上的 $HOME/.local/share/fnm
和MacOS上的 $HOME/Library/Application Support/fnm
)。
--skip-shell
跳过根据当前用户shell(在 $SHELL
中定义)将特定于shell的加载器追加到shell配置文件中。例如,对于Bash,是 $HOME/.bashrc
。对于Zsh是 $HOME/.zshrc
。对于Fish是 $HOME/.config/fish/conf.d/fnm.fish
--force-install
在macOS上使用安装脚本进行安装已被弃用,转而使用Homebrew公式,但此命令仍然强制脚本使用它进行安装。
示例
curl -fsSL https://fnm.vercel.app/install | bash -s -- --install-dir "./.fnm" --skip-shell
手动
使用Homebrew(macOS/Linux)
brew install fnm
使用Winget(Windows)
winget install Schniz.fnm
使用Scoop(Windows)
scoop install fnm
使用Chocolatey(Windows)
choco install fnm
使用Cargo(Linux/macOS/Windows)
cargo install fnm
使用发布版二进制文件(Linux/macOS/Windows)
- 下载您系统的最新发布版二进制文件(点击此处)
- 在环境变量
PATH
上全局可用 - 设置fnm的shell环境
移除
要移除fnm(😢),只需删除您家目录下的 .fnm
文件夹。您还应编辑shell配置以删除对fnm的所有引用(即阅读 Shell Setup,并执行相反操作)。
完成
fnm与其二进制文件一起提供完成功能
fnm completions --shell <SHELL>
其中 <SHELL>
可以是支持的任何shell
bash
zsh
fish
power-shell
请按照您的shell说明来安装它们。
Shell Setup
在您可以使用fnm之前,需要设置环境变量。这通过评估 fnm env
的输出来完成。
[!NOTE] 请查看 配置 部分,以启用高度推荐的功能,如自动版本切换。
将 .node-version
添加到您的项目与
$ node --version
v14.18.3
$ node --version > .node-version
查看以下指南,以了解您使用的shell
Bash
将以下内容添加到您的 .bashrc
配置文件中
eval "$(fnm env --use-on-cd)"
Zsh
将以下内容添加到您的 .zshrc
配置文件中
eval "$(fnm env --use-on-cd)"
Fish shell
创建 ~/.config/fish/conf.d/fnm.fish
并添加以下行
fnm env --use-on-cd | source
PowerShell
将以下内容添加到您的配置文件末尾
fnm env --use-on-cd | Out-String | Invoke-Expression
- 对于macOS/Linux,配置文件位于
~/.config/powershell/Microsoft.PowerShell_profile.ps1
- 在Windows中编辑您的配置文件,您可以在PowerShell中运行以下命令
notepad $profile
Windows命令提示符,也称为批处理,或WinCMD
fnm也受到支持,但并非完全涵盖。 您可以设置启动脚本 并追加以下行
@echo off
:: for /F will launch a new instance of cmd so we create a guard to prevent an infnite loop
if not defined FNM_AUTORUN_GUARD (
set "FNM_AUTORUN_GUARD=AutorunGuard"
FOR /f "tokens=*" %%z IN ('fnm env --use-on-cd') DO CALL %%z
)
Cmder的使用
使用方法与正常WinCMD安装非常相似,只是进行了一些调整,以便可以从Cmder启动脚本中调用。以下示例 假设 环境变量 CMDER_ROOT
被设置为您的Cmder安装的 根目录。然后您可以这样做
- 创建一个.cmd文件来调用它
:: %CMDER_ROOT%\bin\fnm_init.cmd
@echo off
FOR /f "tokens=*" %%z IN ('fnm env --use-on-cd') DO CALL %%z
- 将其添加到启动脚本中
:: %CMDER_ROOT%\config\user_profile.cmd
call "%CMDER_ROOT%\bin\fnm_init.cmd"
您也可以将 %CMDER_ROOT%
替换为任何其他方便的路径。
配置
使用
贡献
PRs欢迎 🎉
开发
# Install Rust
git clone https://github.com/Schniz/fnm.git
cd fnm/
cargo build
运行二进制文件
cargo run -- --help # Will behave like `fnm --help`
运行测试
cargo test
依赖关系
~21–56MB
~1M SLoC