全部
常见问题
产品动态
精选推荐

Node.js 版本管理工具: fnm

管理 管理 编辑 删除

前言

在同时开发多个项目时,我们经常需要在各个项目中切换,而各个项目很可能使用不同的 Node.js 版本,如何维护多个 Node.js 版本以及在多个项目之间切换 Node.js 成为了一件麻烦的事情。

虽然目前市面上已经有了诸如 nvm、n 之类的版本管理工具,但是它们各有各自的问题。

nvm 是目前最流行的 Node.js 版本管理工具,但其不能跨平台、运行缓慢的问题诟病已久,每次启动 shell 时加载 nvm 都是一次漫长的煎熬。

n 作为一个使用 node 编写的 Node.js 版本管理工具,自身便依赖于 Node.js ,这就牵扯出了经典的蛋生鸡还是鸡生蛋问题;再加上它经常需要使用 sudo 来执行,我们只能将它放弃。

fnm 的优势

什么是 fnm 呢? 即 Fast Node Manager,从名字上就能感觉到它很快;没错,它的确非常快!

它的特点如下:

  1. 跨平台运行,支持 Linux / Windows / macOS
  2. 使用 Rust 编写,单文件即可运行,无需其他依赖
  3. 兼容 .node-version 和 .nvmrc 文件

安装

一键安装命令(Linux / macOS):

curl -fsSL https://fnm.vercel.app/install | bash

使用包管理器安装:

# Linux / macOS
brew install fnm

# Windows 
winget install Schniz.fnm

如果网络环境受限,也可以手动下载安装。从 Github Release 页面下载对应系统和架构的二进制文件压缩包,解压后将二进制文件移动到自己放置工具的文件夹下,然后将对应路径配置到环境变量的 Path 中,确保能在 shell 中执行 fnm 命令即可。

配置

安装完 fnm 后,还需要配置 shell 来提供相关环境变量,以下是几种不同 shell 的配置方式:

Bash

# 向用户目录下的 .bashrc 文件中追加以下内容
eval "$(fnm env --use-on-cd --shell bash)"

ZSH

# 向用户目录下的 .zshrc 文件中追加以下内容
eval "$(fnm env --use-on-cd --shell zsh)"

PowerShell

# 向 ~\Documents\PowerShell\Microsoft.PowerShell_profile.ps1 文件中追加以下内容
# 如果文件不存在可以手动创建
fnm env --use-on-cd --shell powershell | Out-String | Invoke-Expression

使用

fnm 最常用的命令包含如下几个

fnm list
# 该命令查看本地已安装的所有 Node.js 版本,fnm list-remote 可以查看远端一共有哪些 Node.js 版本可供安装
fnm install 版本号
# 该命令安装指定版本的 Node.js ,如 fnm install 18.2,也可以使用 fnm install --lts 来安装最新的 lts 版本
fnm use 版本号
# 该命令切换当前 shell 所使用的 Node.js 版本,只在当前 shell 生效,对全局 Node.js 版本没有影响
fnm default 版本号
# 该命令设置全局默认 Node.js 版本
fnm --help
# 该命令可查看 fnm 支持的所有命令

使用时可以在项目根目录中新增 .node-version 或 .nvmrc 文件,并向其中写入要使用的 Node.js 版本号;这样当在 shell 中切换到对应项目根目录时,fnm 会自动切换到文件中指定的 Node.js 版本,并在终端中提示当前运行的 Node.js 版本。

请登录后查看

plz 最后编辑于2024-12-12 18:01:19

快捷回复
回复
回复
回复({{post_count}}) {{!is_user ? '我的回复' :'全部回复'}}
排序 默认正序 回复倒序 点赞倒序

{{item.user_info.nickname ? item.user_info.nickname : item.user_name}} LV.{{ item.user_info.bbs_level }}

作者 管理员 企业

{{item.floor}}# 同步到gitee 已同步到gitee {{item.is_suggest == 1? '取消推荐': '推荐'}}
{{item.is_suggest == 1? '取消推荐': '推荐'}}
沙发 板凳 地板 {{item.floor}}#
{{item.user_info.title || '暂无简介'}}
附件

{{itemf.name}}

{{item.created_at}}  {{item.ip_address}}
{{item.like_count}}
{{item.showReply ? '取消回复' : '回复'}}
删除
回复
回复

{{itemc.user_info.nickname}}

{{itemc.user_name}}

回复 {{itemc.comment_user_info.nickname}}

附件

{{itemf.name}}

{{itemc.created_at}}
{{itemc.like_count}}
{{itemc.showReply ? '取消回复' : '回复'}}
删除
回复
回复
查看更多
215
{{like_count}}
{{collect_count}}
添加回复 ({{post_count}})

相关推荐

快速安全登录

使用微信扫码登录
{{item.label}} 加精
{{item.label}} {{item.label}} 板块推荐 常见问题 产品动态 精选推荐 首页头条 首页动态 首页推荐
取 消 确 定
回复
回复
问题:
问题自动获取的帖子内容,不准确时需要手动修改. [获取答案]
答案:
提交
bug 需求 取 消 确 定

微信登录/注册

切换手机号登录

{{ bind_phone ? '绑定手机' : '手机登录'}}

{{codeText}}
切换微信登录/注册
暂不绑定
CRMEB客服

CRMEB咨询热线 咨询热线

400-8888-794

微信扫码咨询

CRMEB开源商城下载 源码下载 CRMEB帮助文档 帮助文档
返回顶部 返回顶部
CRMEB客服