现在的前端研发都离不开nodejs,每天都要与nodejs打交道,这也引出了一些问题,同一个项目,不同的node版本可能会导致项目无法正常运行,所以就需要针对项目的nodejs版本进行切换。市面上也出现了nodejs版本管理工具,例如nvm或者fnm。

nvm和fnm作为流行的nodejs版本管理工具,可以在同一台计算机上同时安装和管理多个nodejs版本,以适应不同的项目需求。

为什么选择fnm?

fnm和nvm两款工具的功能都差不多,都用来管理node版本,选择fnm主要原因是快,由于它是用Rust语言编写的,它比nvm快很多,无论是安装、切换,还是命令执行等等。另一个原因是跨平台,fnm可以在macOS、Windows和Linux上运行,而nvm只支持macOS和Linux。

fnm安装

fnm安装方法很简单,照着官方的文档即可,具体细节可以查阅fnm文档

macOs安装

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

window安装

scoop install fnm

fnm的一些常用命令如下:

  • fnm install node:安装最新的Node.js版本
  • fnm install 16.6.2:安装指定的Node.js版本(16.6.2)
  • fnm use 16.5.0:切换到已经安装的某个版本(16.5.0)
  • fnm alias default 16.6.2:设置默认的Node.js版本(16.6.2)
  • fnm ls-remote:列出所有可用的Node.js版本
  • fnm ls:列出所有已经安装的Node.js版本
  • fnm uninstall 16.5.0:卸载某个已经安装的Node.js版本(16.5.0)

自动切换nodejs

如何实现在项目打开的时候自动切换nodejs版本,操作很简单,直接在项目根目录下新建一个.node-version文件即可,把需要限制的nodejs版本的数字写入到该文件,例如 18.2.0

配置完还不能实现自动切换nodejs版本,需要在shell配置文件末尾新增fnm env --use-on-cd

不同的shell相关的配置文件加入即可,例如:

Bash,在.bashrc文件末位新增

eval "$(fnm env --use-on-cd)"

PowerShell,在Microsoft.PowerShell_profile.ps1文件末位新增

fnm env --use-on-cd | Out-String | Invoke-Expression

不同的PowerShell版本有不同目录,找到后添加即可,分别是

~\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1

~\Documents\PowerShell\Microsoft.PowerShell_profile.ps1

其他配置可以参考上面的fnm官方地址查阅。

不同项目自动切换不同的node版本

实际场景中,我们需要在不同的项目使用不同的node版本,比如旧的项目使用 node 16,新项目使用 node 20,fnm可以自动帮我们实现这些功能。只需要在项目根目录下创建一个文件 .node-version ,直接输入 20.0.0 ,在进入目录 fnm 就会把 node 自动切换成 20.0.0 的版本。

本文为原创,未经授权,禁止任何媒体或个人自媒体转载
商业侵权必究,如需授权请联系[email protected]
标签: nodejs