当前位置:首页 > 文章列表 > 文章 > 前端 > Nodejs 版本管理器终极指南:NVM、NVS、fnm、Volta 和 asdf |第 1 部分

Nodejs 版本管理器终极指南:NVM、NVS、fnm、Volta 和 asdf |第 1 部分

来源:dev.to 2024-09-16 15:49:00 0浏览 收藏

从现在开始,我们要努力学习啦!今天我给大家带来《Nodejs 版本管理器终极指南:NVM、NVS、fnm、Volta 和 asdf |第 1 部分》,感兴趣的朋友请继续看下去吧!下文中的内容我们主要会涉及到等等知识点,如果在阅读本文过程中有遇到不清楚的地方,欢迎留言呀!我们一起讨论,一起学习!

介绍

嘿!如果您曾经使用 node.js 进行过开发,您就会明白,对于项目来说,经常需要使用不同的版本。也许一个项目可以在版本 10 上运行,另一个项目可以在版本 14 上运行,而一个新项目需要最新版本,比如 20。随着每个新版本的新功能的出现,一系列新的挑战也随之出现。这些是与库和框架的兼容性、新功能的测试以及现有项目的稳定性。

当我同时处理多个项目时,我自己也遇到过这个问题。当每个项目都需要其版本时,看似非常简单的任务(安装 node.js)变得混乱。在本文中,我将告诉您如何使用 nvm、nvs、fnm、volta 和 asdf 等 node.js 版本管理工具解决这个问题。我将描述它们的工作原理,列出优点和缺点,并为您提供我的个人经验,以帮助您选择最适合您需求的节点版本管理器。

为什么版本管理对开发人员很重要?

与库和框架的兼容性

node.js 本身正在快速发展,其工具生态系统也在快速发展。新的库、框架和版本在使用不同的 node.js 版本时需要很大的灵活性。某些视图框架可能仅与特定的 node.js lts 版本兼容,必须根据正在开发的项目切换到该版本。在不同的 node.js 版本之间切换将有助于避免兼容性问题并保持代码顺利运行。

考虑一下您正在处理一些旧项目,该项目取决于库的特定版本。您同时根据最新版本的 node.js 运行一些新项目,因为它使用仅在最新版本中可用的功能。新版本的 node.js 可能包含与这些库版本不兼容的功能,这将导致应用程序性能错误或不稳定。

有一天,我陷入了这样的困境,我需要手动安装不同版本的 node.js,使用它,然后重新安装另一个版本,依此类推。相信我,那是一场噩梦。然后,我突然意识到,如果没有节点版本管理器实用工具,我将无法做任何事情。

新功能测试

软件开发就是不断测试和实现新功能。 node.js 的每个新版本都会向开发人员提供更多语言和平台功能,例如增强的异步编程支持、模块系统的改进以及新的 api。然后,这些功能将在实际项目中进行测试,以确定它们的有效性以及是否将它们实现到主应用程序中。

但是如果你当前的项目在旧版本的 node.js 下运行稳定,而升级 node.js 后可能会出现问题怎么办?

这通常意味着检查 master 分支中的新功能,或使用新 node.js 版本的项目副本。幸运的是,版本管理工具允许我在不同版本之间切换,并且主分支不会出现故障。

确保稳定和安全

稳定性和安全性是任何项目的主要因素。在旧版本的 node.js 中,可能会存在一些错误,这些错误会在新版本中得到修复。如果应用程序依赖于支持新平台版本升级的旧库,那么升级到最新版本是相当危险的。

版本控制 node.js 允许您安全地升级平台版本,同时保留出现问题时回滚的可能性,从而帮助开发人员保持应用程序稳定且免受漏洞影响。

管理 node.js 版本的方法

Nodejs 版本管理器终极指南:NVM、NVS、fnm、Volta 和 asdf |第 1 部分

标准安装

如果您是 node.js 的新手,您可能已经从其官方网站下载并安装了它。当您只需要一个版本的 node.js 时,这是最直接的方法。您下载安装程序,按照说明操作,瞧 — node.js 就在您的计算机上。

但是想象一下,您正在处理多个项目,并且所有这些项目都需要某些特定版本的 node.js。例如,您在 node.js 10 上有一些旧项目,在 node.js 20 上有一些新项目。不断地重新安装 node.js 太耗时且不方便。

node.js 版本管理工具

有很多用于管理 node.js 版本的工具。在本文中,我将讨论五个流行的选项:nvm(节点版本管理器)、nvs(节点版本切换器)、fnm 或快速节点管理器、volta 和 asdf。所有这些都有其管理版本的方式和功能,可能适用于各种任务和团队。

这些版本管理器将自动化管理流程,管理版本的一致性,并避免兼容性问题,帮助您选择适合您需求的工具。

与 ci/cd 工具集成

Nodejs 版本管理器终极指南:NVM、NVS、fnm、Volta 和 asdf |第 1 部分

当您开始在团队中工作时,版本管理变得更加重要。每个开发人员都可能拥有自己的 node.js 版本,这在不同的开发和部署阶段可能会出现很大的问题,因为可能会出现不同的错误。在自动化扮演着重要角色的大型项目和团队中,此类 node.js 版本管理工具可以集成到 ci/cd 流程中。

nvm 等工具可以集成到 ci/cd 流程中,允许每个构建都使用所需版本的 node.js,而无需手动干预,确保每个团队成员都使用正确的 node.js 版本来执行其任务。这有助于保持不同环境(例如开发环境、测试和生产)的稳定性和一致性。

node.js 版本管理工具概述

现在,管理不同 node.js 版本的不同工具各有优缺点,我将尝试解释每种工具最适合什么情况。

nvm(节点版本管理器)

nvm 是节点版本管理器的缩写。它是最古老且仍然非常流行的 node.js 版本管理器之一。 nvm 由 tim caswell 于 2010 年创建,目前仍在积极维护中。

Nodejs 版本管理器终极指南:NVM、NVS、fnm、Volta 和 asdf |第 1 部分

nvm 将每个 node.js 版本下载到其自己的独立目录中,位于 ~/.nvm/versions/node/。当您使用 nvm use 在版本之间切换时,它会更新您的 $path 环境变量以指向适当的目录。

如何安装和使用

在 macos 和 linux 上安装:

要在 macos 和 linux 上安装 nvm,请按照以下步骤操作:

  1. 打开终端并输入以下内容:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash


wget -qo- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash

这将从官方 nvm github 存储库下载并运行 nvm 安装脚本,nvm 将安装在您的系统上。安装完成后,您可以使用以下命令验证 nvm 是否已安装:
nvm — 版本

如果一切顺利,您应该会看到 nvm 版本。

windows 安装:

  1. 从其 github 存储库下载 nvm-windows 安装程序。
  2. 运行安装程序并按照屏幕上的说明进行操作,确保选择正确的安装路径。

在安装过程中,它会自动在您的配置文件中设置 nvm 配置。如果您使用 zsh,则为 ~/.zshrc;或者如果您使用的是 bash,则为 ~/.bashrc、~/.bash_profile 或其他配置文件。

如果这没有自动发生,请自行将 nvm 配置添加到配置文件中:

export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")" [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"

使用非易失性存储器:

  • 列出可用的 node.js 版本:nvm ls-remote
  • 安装最新的 node.js 版本:nvm install node
  • 安装特定版本:nvm install 14.17.0 或 nvm install 14
  • 版本切换:nvm use 14.17.0 或 nvm use 14
  • 设置默认版本:nvm alias default 18
  • 查看已安装版本:nvm ls
  • 来自 .nvmrc 的版本:如果您的项目目录包含指定所需 node.js 版本(例如 16.13.0 或 20)的 .nvmrc 文件,您可以使用 nvm 自动切换到该版本。

nvm的优点:

  • 安装和使用:几分钟内完成,此后,处理各种 node.js 版本非常容易。
  • 灵活性:它允许人们在一台设备上运行或安装多个 node.js 版本而不会发生冲突。
  • 兼容性: nvm 适用于大多数类 unix 系统,并可在 macos 或 linux 上运行。对于 windows,有一个名为 nvm-windows 的端口。
  • 支持 .nvmrc 文件:此文件允许您在进入项目目录时自动切换到所需的 node.js 版本。
  • 社区和文档: 庞大的用户群和良好的文档使 nvm 成为值得信赖的选择。

nvm的缺点:

  • 性能:有时,nvm 可能比其他工具慢,尤其是在版本之间频繁切换时。
  • 手动管理:对于一些开发者来说,手动切换版本可能看起来不方便,特别是在需要自动化的情况下。
  • windows 上的不便:如果您在 windows 上工作,通过 wsl 使用 nvm 可能会不方便。

文中关于的知识介绍,希望对你的学习有所帮助!若是受益匪浅,那就动动鼠标收藏这篇《Nodejs 版本管理器终极指南:NVM、NVS、fnm、Volta 和 asdf |第 1 部分》文章吧,也可关注golang学习网公众号了解相关技术文章。

版本声明
本文转载于:dev.to 如有侵犯,请联系study_golang@163.com删除
Win10记事本有什么作用 Win10记事本使用方法分享Win10记事本有什么作用 Win10记事本使用方法分享
上一篇
Win10记事本有什么作用 Win10记事本使用方法分享
为什么 Streams API 改变了 Web 开发者的游戏规则
下一篇
为什么 Streams API 改变了 Web 开发者的游戏规则
查看更多
最新文章
查看更多
课程推荐
  • 前端进阶之JavaScript设计模式
    前端进阶之JavaScript设计模式
    设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
    542次学习
  • GO语言核心编程课程
    GO语言核心编程课程
    本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
    511次学习
  • 简单聊聊mysql8与网络通信
    简单聊聊mysql8与网络通信
    如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
    498次学习
  • JavaScript正则表达式基础与实战
    JavaScript正则表达式基础与实战
    在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
    487次学习
  • 从零制作响应式网站—Grid布局
    从零制作响应式网站—Grid布局
    本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
    484次学习
查看更多
AI推荐
  • 千音漫语:智能声音创作助手,AI配音、音视频翻译一站搞定!
    千音漫语
    千音漫语,北京熠声科技倾力打造的智能声音创作助手,提供AI配音、音视频翻译、语音识别、声音克隆等强大功能,助力有声书制作、视频创作、教育培训等领域,官网:https://qianyin123.com
    101次使用
  • MiniWork:智能高效AI工具平台,一站式工作学习效率解决方案
    MiniWork
    MiniWork是一款智能高效的AI工具平台,专为提升工作与学习效率而设计。整合文本处理、图像生成、营销策划及运营管理等多元AI工具,提供精准智能解决方案,让复杂工作简单高效。
    94次使用
  • NoCode (nocode.cn):零代码构建应用、网站、管理系统,降低开发门槛
    NoCode
    NoCode (nocode.cn)是领先的无代码开发平台,通过拖放、AI对话等简单操作,助您快速创建各类应用、网站与管理系统。无需编程知识,轻松实现个人生活、商业经营、企业管理多场景需求,大幅降低开发门槛,高效低成本。
    112次使用
  • 达医智影:阿里巴巴达摩院医疗AI影像早筛平台,CT一扫多筛癌症急慢病
    达医智影
    达医智影,阿里巴巴达摩院医疗AI创新力作。全球率先利用平扫CT实现“一扫多筛”,仅一次CT扫描即可高效识别多种癌症、急症及慢病,为疾病早期发现提供智能、精准的AI影像早筛解决方案。
    104次使用
  • 智慧芽Eureka:更懂技术创新的AI Agent平台,助力研发效率飞跃
    智慧芽Eureka
    智慧芽Eureka,专为技术创新打造的AI Agent平台。深度理解专利、研发、生物医药、材料、科创等复杂场景,通过专家级AI Agent精准执行任务,智能化工作流解放70%生产力,让您专注核心创新。
    105次使用
微信登录更方便
  • 密码登录
  • 注册账号
登录即同意 用户协议隐私政策
返回登录
  • 重置密码