fnm + Cmder使用, 从此不再有多个项目多个Node切来切去的苦恼了[windows]

812 阅读2分钟

建议先去看一下官网了解一下: github.com/Schniz/fnm

前置配置:

添加cmder的路径环境变量: CMDER_ROOT, 如下: image.png 添加环境变量FNM_DIR, 这个就是配置以后安装的node各个版本的目录, 并且每个版本的全局安装的包也会在这个目录下, 如果不配置的话, 会默认安装在C:\Users{your user name}\AppData\Roaming\fnm下。 image.png

安装

windows: 直接使用二进制文件安装 下载地址 image.png mac: 或者使用命令安装, 如下:

curl -fsSL https://fnm.vercel.app/install | bash -s -- --install-dir "./.fnm" --skip-shell

也可使用二进制文件安装。

配置环境变量

image.png

与 cmder 结合使用

在前置配置里我们配置好CMDER_ROOT的环境变量 现在 创建一个.cmd的文件, 写入以下内容:

:: %CMDER_ROOT%\bin\fnm_init.cmd
@echo off
FOR /f "tokens=*" %%z IN ('fnm env --use-on-cd') DO CALL %%z

将上面创建的fnm_init.cmd放置到%CMDER_ROOT%\bin\fnm_init.cmd, 然后打开%CMDER_ROOT%\config\user_profile.cmd, 追加以下内容:

:: %CMDER_ROOT%\config\user_profile.cmd
call "%CMDER_ROOT%\bin\fnm_init.cmd"

这样就可以了 使用cmder打开项目目录时, 就会自动读取项目下的.node-version

基本使用

fnm ls-remote: 查看远程Node版本
fnm install v18.16.0: 安装指定Node版本
fnm install --lts: 安装最新LTS版本的Node
fnm alias <version> <name>: 配置版本别名, 例如: fnm alias 14.1.0 old
fnm default <version>: 配置默认node版本
fnm unalias <name>: 删除别名
fnm use 18: 使用特定版本, 可以直接是16, 18这样
fnm use: 单独列一下, 如果后面不指定版本, 项目根目录下存在
.node-version文件, 那么该命令会自动切换到
.node-version配置的node版本
fnm ls: 列出本地所有安装的Node版本

与项目配合使用

在项目根目录下添加.node-version文件, 并写入:

v18.16.0

卸载

这个官网说的我没太明白, 我理解的是把fnm的安装路径删掉, 然后删掉fnmnode安装目录, 再删掉环境变量就算卸成功了.