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 开发工具

Download history 214/week @ 2024-04-24 143/week @ 2024-05-01 180/week @ 2024-05-08 186/week @ 2024-05-15 187/week @ 2024-05-22 247/week @ 2024-05-29 196/week @ 2024-06-05 246/week @ 2024-06-12 203/week @ 2024-06-19 194/week @ 2024-06-26 154/week @ 2024-07-03 202/week @ 2024-07-10 257/week @ 2024-07-17 208/week @ 2024-07-24 218/week @ 2024-07-31 423/week @ 2024-08-07

1,142 个月下载量
用于 learnwy_bin_utils

GPL-3.0 许可证

195KB
5.5K SLoC

Rust 3.5K SLoC // 0.0% comments TypeScript 1K SLoC // 0.0% comments JavaScript 443 SLoC // 0.1% comments Shell 295 SLoC // 0.0% comments Batch 14 SLoC

快速Node管理器 (fnm) 下载量 GitHub Actions 工作流程状态

🚀 快速简单的Node.js版本管理器,用Rust编写

Blazing fast!

功能

🌎 跨平台支持(macOS、Windows、Linux)

✨ 单个文件,易于安装,快速启动

🚀 专注于速度

📂 与 .node-version.nvmrc 文件一起使用

安装

使用脚本(macOS/Linux)

对于 bashzshfish 终端,有一个 自动安装脚本

首先确保你的操作系统中已经安装了 curlunzip。然后执行

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

然后,设置fnm的shell环境

使用Winget(Windows)

winget install Schniz.fnm

使用Scoop(Windows)

scoop install fnm

然后,设置fnm的shell环境

使用Chocolatey(Windows)

choco install fnm

然后,设置fnm的shell环境

使用Cargo(Linux/macOS/Windows)

cargo install fnm

然后,设置fnm的shell环境

使用发布版二进制文件(Linux/macOS/Windows)

移除

要移除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