百度360必应搜狗淘宝本站头条
当前位置:网站首页 > IT知识 > 正文

Node问题:如何正确安装nvm?Mac和Win双教程!

liuian 2025-01-05 18:42 243 浏览

前端功能问题系列文章,点击上方合集↑

序言

大家好,我是大澈!

本文1700+,整篇阅读大约需要3分钟。

本文主要内容分三部分,第一部分是需求分析,第二部分是实现步骤,第三部分是问题详解。

如果您只需要解决问题,请阅读第一、二部分即可。

如果您有更多时间,进一步学习问题相关知识点,请阅读至第三部分。

1. 需求分析

为维护多个Vue2和Vue3项目,需要频繁切换node的版本,以保证项目正常运行。

所以需要一个node版本控制工具,即nvm,来灵活切换版本,以解决手动维护不同版本的复杂问题。

实现前有必要提一下,本文第二部分是安装教程,第三部分是nvm使用教程,为节省朋友们的时间,请自行选择阅读。

2. 实现步骤

2.1 Mac安装nvm


打开命令行窗口,先卸载之前下载过的node,防止冲突。

sudo rm -rf /usr/local/{bin/{node,npm},lib/node_modules/npm,lib/node,share/man/*/node.*}

安装nvm。如果安装速度过于慢,推荐直接使用梯子工具ClashX

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

正常情况下,安装完成后,会自动在全局配置文件中配置好相应的环境变量。此时,可以使用 nvm -v 命令进行验证,如果没有显示nvm版本号,则请继续向下看。

手动配置环境变量,先进入并打开.bash_profile配置文件。

cd ~
vim .bash_profile

然后将下面的配置信息复制粘贴进去,完成输入之后,再在英文输入法下,直接输入 :wq保存并退出编辑。

export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion

刷新配置信息,并关闭命令行窗口重新打开。

source ~/.bash_profile

此时,可以再次使用 nvm -v 命令进行验证,如果没有显示nvm版本号,则请继续向下看。

继续手动配置环境变量,先进入并打开.zshrc配置文件。

vim ~/.zshrc

然后将下面的配置信息复制粘贴进去,完成输入之后,再在英文输入法下,直接输入 :wq保存并退出编辑。

export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion

刷新配置信息,并关闭命令行窗口重新打开。

source ~/.zshrc

此时,可以再次使用 nvm -v 命令进行验证,成功显示nvm版本号。

至此,Mac下nvm完美运行。

2.2 Windows安装nvm


先卸载之前下载过的node,防止冲突。

按如下步骤卸载:卸载程序、找到环境变量中node路径下的安装文件夹并删除、删除环境变量中的node路径。

以管理员身份运行命令行窗口,输入 node -v 确认一下,如果显示node不是内部或外部命令,则表示成功删除node,此时关闭命令行窗口即可。

下载nvm。安装包下载地址:https://github.com/coreybutler/nvm-windows/releases,下载nvm-setup.zip安装包。如果进不去网站,推荐直接使用梯子工具ClashX

安装nvm。安装包下载完成后打开,按照提示安装即可。

值得一提的是,一定要注意nvm和node的安装路径,可以自定义路径,但一定要记住nvm和node的安装路径,后面配置环境变量时会使用。

安装完成后,以管理员身份运行命令行窗口,输入nvm -v,显示版本号,则表示安装成功。如果未显示版本号,则关闭命令行窗口,继续向下看。

配置环境变量。

先在系统变量中新建两个变量,NVM_HOME变量值填写nvm安装地址,NVM_SYMLINK变量值填写node安装地址。

然后在Path变量中,新建两个值,%NVM_HOME%%NVM_SYMLINK%

最后,确定保存环境变量。再次以管理员身份运行命令行窗口,输入nvm -v,显示版本号,则表示安装成功。


3. 问题详解

3.1 nvm使用总结

先把常用的命令放出来:

nvm off // 禁用node.js版本管理(不卸载任何东西)
nvm on // 启用node.js版本管理
nvm install <version> // 安装node.js的命名 version是版本号 例如:nvm install 8.12.0
nvm uninstall <version> // 卸载node.js是的命令,卸载指定版本的nodejs,当安装失败时卸载使用
nvm ls // 显示所有安装的node.js版本
nvm list available // 显示可以安装的所有node.js的版本
nvm use <version> // 切换到使用指定的nodejs版本
nvm v // 显示nvm版本
nvm install stable // 安装最新稳定版

然后就是使用,大体步骤是:以管理员身份运行命令行窗口,先查看所有安装的node版本,如果列表中有需要的node版本,则直接切换使用,如果没有,则需要先安装指定版本的node,再切换使用。

结语

建立这个平台的初衷:

  • 打造一个仅包含前端问题的问答平台,让大家高效搜索处理同样问题。
  • 通过不断积累问题,一起练习逻辑思维,并顺便学习相关的知识点。
  • 遇到难题,遇到有共鸣的问题,一起讨论,一起沉淀,一起成长。

感谢关注微信公众号:“程序员大澈”,然后加入问答群,让我们一起解决实现所有BUG!

相关推荐

教你把多个视频合并成一个视频的方法

一.情况介绍当你有一个m3u8文件和一个目录,目录中有连续的视频片段,这些片段可以连成一段完整的视频。m3u8文件打开后像这样:m3u8文件,可以理解为播放列表,里面是播放视频片段的顺序。视频片段像这...

零代码编程:用kimichat合并一个文件夹下的多个文件

一个文件夹里面有很多个srt字幕文件,如何借助kimichat来自动批量合并呢?在kimichat对话框中输入提示词:你是一个Python编程专家,完成如下的编程任务:这个文件夹:D:\downloa...

Java APT_java APT 生成代码

JavaAPT(AnnotationProcessingTool)是一种在Java编译阶段处理注解的工具。APT会在编译阶段扫描源代码中的注解,并根据这些注解生成代码、资源文件或其他输出,...

Unit Runtime:一键运行 AI 生成的代码,或许将成为你的复制 + 粘贴神器

在我们构建了UnitMesh架构之后,以及对应的demo之后,便着手于实现UnitMesh架构。于是,我们就继续开始UnitRuntime,以用于直接运行AI生成的代码。PS:...

挣脱臃肿的枷锁:为什么说Vert.x是Java开发者手中的一柄利剑?

如果你是一名Java开发者,那么你的职业生涯几乎无法避开Spring。它如同一位德高望重的老国王,统治着企业级应用开发的大片疆土。SpringBoot的约定大于配置、SpringCloud的微服务...

五年后,谷歌还在全力以赴发展 Kotlin

作者|FredericLardinois译者|Sambodhi策划|Tina自2017年谷歌I/O全球开发者大会上,谷歌首次宣布将Kotlin(JetBrains开发的Ja...

kotlin和java开发哪个好,优缺点对比

Kotlin和Java都是常见的编程语言,它们有各自的优缺点。Kotlin的优点:简洁:Kotlin程序相对于Java程序更简洁,可以减少代码量。安全:Kotlin在类型系统和空值安全...

移动端架构模式全景解析:从MVC到MVVM,如何选择最佳设计方案?

掌握不同架构模式的精髓,是构建可维护、可测试且高效移动应用的关键。在移动应用开发中,选择合适的软件架构模式对项目的可维护性、可测试性和团队协作效率至关重要。随着应用复杂度的增加,一个良好的架构能够帮助...

颜值非常高的XShell替代工具Termora,不一样的使用体验!

Termora是一款面向开发者和运维人员的跨平台SSH终端与文件管理工具,支持Windows、macOS及Linux系统,通过一体化界面简化远程服务器管理流程。其核心定位是解决多平台环境下远程连接、文...

预处理的底层原理和预处理编译运行异常的解决方案

若文章对您有帮助,欢迎关注程序员小迷。助您在编程路上越走越好![Mac-10.7.1LionIntel-based]Q:预处理到底干了什么事情?A:预处理,顾名思义,预先做的处理。源代码中...

为“架构”再建个模:如何用代码描述软件架构?

在架构治理平台ArchGuard中,为了实现对架构的治理,我们需要代码+模型描述所要处理的内容和数据。所以,在ArchGuard中,我们有了代码的模型、依赖的模型、变更的模型等,剩下的两个...

深度解析:Google Gemma 3n —— 移动优先的轻量多模态大模型

2025年6月,Google正式发布了Gemma3n,这是一款能够在2GB内存环境下运行的轻量级多模态大模型。它延续了Gemma家族的开源基因,同时在架构设计上大幅优化,目标是让...

比分网开发技术栈与功能详解_比分网有哪些

一、核心功能模块一个基本的比分网通常包含以下模块:首页/总览实时比分看板:滚动展示所有正在进行的比赛,包含比分、比赛时间、红黄牌等关键信息。热门赛事/焦点战:突出显示重要的、关注度高的比赛。赛事导航...

设计模式之-生成器_一键生成设计

一、【概念定义】——“分步构建复杂对象,隐藏创建细节”生成器模式(BuilderPattern):一种“分步构建型”创建型设计模式,它将一个复杂对象的构建与其表示分离,使得同样的构建过程可以创建...

构建第一个 Kotlin Android 应用_kotlin简介

第一步:安装AndroidStudio(推荐IDE)AndroidStudio是官方推荐的Android开发集成开发环境(IDE),内置对Kotlin的完整支持。1.下载And...