岁岁年,碎碎念

轻松管理不同项目之间的Node.js版本

2023.08.21     230

Node.js 版本管理工具

以下是一些常用的 Node.js 版本管理工具,按照 star 数量降序排列,并列出它们的特点、优劣势:

工具名称 GitHub 仓库链接 Stars 数量 特点 优势 劣势
NVM (Node Version Manager) nvm-sh/nvm 约 69.4k - 支持在项目和系统级别管理 Node.js 版本。- 强大的社区支持和活跃的维护。- 跨平台使用。- 能够在项目目录中指定版本。 - 受欢迎的工具,有大量文档和资源。- 可以方便地切换不同版本。- 适合多个项目和多个版本的情况。 - 需要安装 NVM,初次设置较多。- 在某些系统上可能需要额外的配置。
asdf asdf-vm/asdf 约 18.2k - 多用途的版本管理工具,支持多种编程语言和工具。- 插件系统提供广泛的支持。 - 一个工具可以管理多个编程语言的版本。- 跨平台使用。- 插件系统扩展了其功能。 - 对于仅需管理 Node.js 版本的情况可能过于庞大。- 插件系统需要一些学习成本。
nvm-windows coreybutler/nvm-windows 约 29.9k - Windows 平台上的 NVM 版本。- 支持在项目和系统级别管理 Node.js 版本。- 跨平台使用。 - 在 Windows 环境中管理 Node.js 版本的方便工具。- 可以与项目集成。- 直接支持 Windows 环境。 - 仅限于 Windows 环境使用。- 需要安装 nvm-windows。
fnm (Fast Node Manager) Schniz/fnm 约 13.1k - 专注于性能和轻量级的版本切换。- 使用速度较快。- 可以在项目中使用指定版本。 - 提供快速的版本切换体验。- 轻量级,不需要太多额外设置。- 在项目中自动切换版本。 - 相对较新的工具,可能有些功能较少。- 社区可能相对较小。
Volta volta-cli/volta 约 8.5k - 旨在提供可预测和快速的版本切换。- 支持配置项目版本。- 使用 Yarn 或 npm。 - 简化了版本管理过程。- 提供了可预测的版本切换。- 可以与 Yarn 或 npm 配合使用。 - 相对较新的工具,可能需要更多的使用文档和资源。- 功能相对较少。

表格数据截至 2023.8.21

NVM(Node Version Manager)

安装 NVM

在终端中运行以下命令以安装 NVM:

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash

或者,您也可以使用 Wget:

wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash

然后,重新启动终端,或者运行以下命令以使 NVM 生效:

source ~/.bashrc

常见用法

  1. 安装 Node.js 版本

    使用以下命令安装所需的 Node.js 版本(例如,14.17.0):

    nvm install 14.17.0
    
  2. 切换 Node.js 版本

    使用以下命令切换到已安装的 Node.js 版本(例如,14.17.0):

    nvm use 14.17.0
    
  3. 在项目中使用指定版本

    在项目目录中创建一个名为 .nvmrc 的文件,内容为所需的 Node.js 版本号,然后在项目目录下运行以下命令:

    nvm use
    

    NVM 将自动检测 .nvmrc 文件中指定的版本并使用。

FNM(Fast Node Manager)

安装 FNM

在终端中运行以下命令以安装 FNM:

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

常见用法

  1. 安装 Node.js 版本

    使用以下命令安装所需的 Node.js 版本(例如,14.17.0):

    fnm install 14.17.0
    
  2. 切换 Node.js 版本

    使用以下命令切换到已安装的 Node.js 版本(例如,14.17.0):

    fnm use 14.17.0
    
  3. 在项目中使用指定版本

    在项目目录中创建一个名为 .node-version 的文件,内容为所需的 Node.js 版本号,然后在项目目录下运行以下命令:

    fnm use
    

    FNM 将自动检测 .node-version 文件中指定的版本并使用。