fnm
)快速简单的 Node.js 版本管理器,用 Rust 构建
?跨平台支持(macOS、Windows、Linux)
单文件、轻松安装、即时启动
注重速度
适用于.node-version
和.nvmrc
文件
对于bash
、 zsh
和fish
shell,有一个自动安装脚本。
首先确保您的操作系统上已经安装了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
。 $HOME/.zshrc
用于 Zsh。对于鱼 - $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
brew install fnm
然后,为 fnm 设置 shell
winget install Schniz.fnm
scoop install fnm
然后,为 fnm 设置 shell
choco install fnm
然后,为 fnm 设置 shell
cargo install fnm
然后,为 fnm 设置 shell
PATH
环境变量中全局可用要删除 fnm (?),只需删除主目录中的.fnm
文件夹即可。您还应该编辑 shell 配置以删除对 fnm 的任何引用(即阅读 Shell 设置,然后执行相反的操作)。
fnm 通过二进制文件发送其补全:
fnm completions --shell < SHELL >
其中<SHELL>
可以是受支持的 shell 之一:
bash
zsh
fish
powershell
请按照您的 shell 说明安装它们。
在开始使用 fnm 之前需要设置环境变量。这是通过评估fnm env
的输出来完成的。
笔记
查看配置部分以启用强烈推荐的功能,例如自动版本切换。
将.node-version
添加到您的项目非常简单:
$ node --version
v14.18.3
$ node --version > .node-version
请查看以下适用于您使用的 shell 的指南:
将以下内容添加到您的.bashrc
配置文件中:
eval " $( fnm env --use-on-cd --shell bash ) "
将以下内容添加到您的.zshrc
配置文件中:
eval " $( fnm env --use-on-cd --shell zsh ) "
创建~/.config/fish/conf.d/fnm.fish
并将此行添加到其中:
fnm env --use-on-cd --shell fish | source
将以下内容添加到您的配置文件的末尾:
fnm env -- use-on - cd -- shell powershell | Out-String | Invoke-Expression
~/.config/powershell/Microsoft.PowerShell_profile.ps1
notepad $profile
fnm 也受支持,但并未完全涵盖。您可以为 cmd.exe 或 Windows Terminal 设置启动脚本并附加以下行:
@ 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
)
用法与正常的 WinCMD 安装非常相似,除了一些调整以允许从 cmder 启动脚本调用之外。该示例假设CMDER_ROOT
环境变量设置为 Cmder 安装的根目录。然后你可以做这样的事情:
:: %CMDER_ROOT%binfnm_init.cmd
@ echo off
FOR /f " tokens=* " %%z IN ('fnm env --use-on-cd') DO CALL %%z
:: %CMDER_ROOT%configuser_profile.cmd
call " %CMDER_ROOT% binfnm_init.cmd "
您也可以将%CMDER_ROOT%
替换为任何其他方便的路径。
请参阅可用的配置选项以获取扩展配置文档
请参阅可用命令以获取扩展使用文档
欢迎 PR 吗?
# Install Rust
git clone https://github.com/Schniz/fnm.git
cd fnm/
cargo build
cargo run -- --help # Will behave like `fnm --help`
cargo test