Linux 安装 NVM 并配置 npm 加速,开发 node 项目不再愁

由于需要在 linux 机器上完成 node 项目的构建,需要安装 nodejs, 想着不同项目需要使用不同的版本,索性安装一下 nvm 吧,因为之前在 windows 上已经安装过 nvm-windows, 应该很容易上手,我尝试了官网提供的几种方式,最后把我觉得最靠谱的方式分享给大家。

官网:GitHub - nvm-sh/nvm: Node Version Manager - POSIX-compliant bash script to manage multiple active node.js versions

快速安装

官网提供了几种安装方式:

  • Install & Update by Script, 通过 sh 脚本安装

  • Git Install,通过 git 仓库安装

  • Manual Install, 手动安装

三种方式,其实本质就是把项目仓库下载到本地,配置相关的环境变量,执行一些脚本而已。

我将我安装的过程分享给大家,主要分 3 步:

  1. git clone 项目到目录

  2. git checkout 最新版本的 tag

  3. source 配置命令到 bash 上下文

也不一定非要 git clone ,直接下载解压也是可以的,本质是下载项目到某个目录。

我这里直接 clone 到 ~/.nvm 目录

# 可选,会自动创建目录
mkdir ~/.nvm
# 克隆到指定目录,也可以直接下载解压到目录也可以(访问限制的场景有用)
git clone git@github.com:nvm-sh/nvm.git ~/.nvm
export NVM_DIR="$HOME/.nvm"
cd $NVM_DIR
# 可选,用 master 分支也不是不可以
git checkout v0.40.1
# 使 nvm 命令加到 PATH 中,可以直接使用
. ./nvm.shnvm --version

上面的安装比较简单,记住只需要把项目下下来即可。

配置命令补全

为了下次再打开终端也能有 nvm 命令,需要配置一下 .bashrc 或者 /etc/profile 都可以,不然找不到 nvm 命令,缺少命令自动补全功能。

# 我这里直接添加到了用户下的 .bashrc 文件中
vim ~/.bashrc#...追加如下部分内容
export NVM_NODEJS_ORG_MIRROR=https://npmmirror.com/mirrors/node/
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# 配置完可以重新打开终端窗口,验证是否有 nvm 命令
nvm --version

安装 nodejs

# 列出当前远程仓库支持的版本
nvm ls-remote
# 安装最新的 lts 版本
nvm install --lts
# 安装 14 版本
nvm install 14
# 安装 16 版本
nvm install 16
# 列出当前版本
nvm current
# 卸载指定版本
nvm uninstall 16

配置 npm 加速

配置 npm 加速比较简单: npmmirror 镜像站

npm config set registry https://registry.npmmirror.com

nvm 卸载

nvm 的卸载也比较简单,直接删除相关文件和配置项即可

# 清除 bash 终端命令补全(可选,把下面的 .bashrc 中的内容删掉,新终端里就不会有 nvm 相关命令了了)
nvm unload
# 删除目录
rm -rf $NVM_DIR
# 删掉之前配置的环境变量及 bash 补全的内容
vim ~/.bashrc

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1559548.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

基于springboot vue在线学籍管理系统设计与实现

博主介绍:专注于Java(springboot ssm 等开发框架) vue .net php python(flask Django) 小程序 等诸多技术领域和毕业项目实战、企业信息化系统建设,从业十五余年开发设计教学工作 ☆☆☆ 精彩专栏推荐订阅☆☆☆☆☆不然下次找…

Nexpose 6.6.271 发布下载,新增功能概览

Nexpose 6.6.271 for Linux & Windows - 漏洞扫描 Rapid7 Vulnerability Management, release Sep 26, 2024 请访问原文链接:https://sysin.org/blog/nexpose-6/,查看最新版。原创作品,转载请保留出处。 作者主页:sysin.or…

RAG(Retrieval-Augmented Generation,检索增强生成)

简介:个人学习分享,如有错误,欢迎批评指正。 RAG(Retrieval-Augmented Generation)是一种结合信息检索与生成式模型的混合架构,旨在提升自然语言生成任务的准确性、丰富性和知识覆盖范围。它通过在生成过程…

基于SpringBoot+Vue的Cosplay交流论坛系统

作者:计算机学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等,“文末源码”。 专栏推荐:前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码、微信小程序源码 精品专栏:…

【Java程序设计】动态规划算法专题(六):回文串问题

目录 1、回文子串("引子题") 1.1 算法原理 1.2 算法代码 2、最长回文子串 2.1 算法原理 2.2 算法代码 3、分割回文串 IV(hard) 3.1 算法原理 3.2 算法代码 4、分割字符串 II(hard) 4…

HAL库常用的函数:

目录 HAL库: 1.GPIO常用函数: 1.HAL_GPIO_ReadPin( ) 2.HAL_GPIO_WritePin( ) 3.HAL_GPIO_TogglePin( ) 4.HAL_GPIO_EXTI_IRQHandler( ) 5.HAL_GPIO_EXTI_Callback( ) 2.UART常用函数: 1.HAL_U…

深度学习笔记(持续更新)

注:本文所有深度学习内容都是基于PyTorch,PyTorch作为一个开源的深度学习框架,具有可以动态计算图、拥有简洁易用的API、支持GPU加速等特点,在计算机视觉、自然语言处理、强化学习等方面有广泛应用。 使用matplotlib绘图&#xff…

Python | Leetcode Python题解之第468题验证IP地址

题目: 题解: class Solution:def validIPAddress(self, queryIP: str) -> str:if queryIP.find(".") ! -1:# IPv4last -1for i in range(4):cur (len(queryIP) if i 3 else queryIP.find(".", last 1))if cur -1:return &q…

计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-10

计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-10 1. Characterizing and Efficiently Accelerating Multimodal Generation Model Inference Y Lee, A Sun, B Hosmer, B Acun, C Balioglu, C Wang… - arXiv preprint arXiv …, 2024 https://arxiv.org/pdf…

如何使用Colly库进行大规模数据抓取?

在互联网时代,数据的价值日益凸显,大规模数据抓取成为获取信息的重要手段。Go语言因其高效的并发处理能力,成为编写大规模爬虫的首选语言。Colly库作为Go语言中一个轻量级且功能强大的爬虫框架,能够满足大规模数据抓取的需求。本文…

C语言 | Leetcode C语言题解之第467题环绕字符串中唯一的子字符串

题目&#xff1a; 题解&#xff1a; #define MAX(a, b) ((a) > (b) ? (a) : (b))int findSubstringInWraproundString(char * p) {int dp[26];int len strlen(p);memset(dp, 0, sizeof(dp));int k 0;for (int i 0; i < len; i) {if (i && (p[i] - p[i - 1] …

动态线程池设计与实现

为什么要有动态线程池 ThreadPoolExecutor 核心线程参数对某些业务不知到设置多少合适调整参数需要重新启动服务没有告警功能 设计思路 流程设计 库表抽象 更新操作流程图 代码实现 GitCode - 全球开发者的开源社区,开源代码托管平台

太阳诱电电感选型方法及产品介绍

功率电感在电子电路中被广泛应用&#xff0c;太阳诱电的功率电感从原材料开始进行研发&#xff0c;生产和销售。 本次研讨会将带领大家更加了解功率电感的选型方法&#xff0c;以及各种功率电感的种类和特征。 此外&#xff0c;也将介绍太阳诱电的最新产品阵容。本次研讨会预计…

python之详解集合

一种无序且不重复的数据容器&#xff0c;集合用大括号{}表示。 1、集合的查找访问 集合是不能通过 集合名[index] 这种方式访问的&#xff0c;其作用在于快速读取&#xff0c;而不是针对某个元素。 但&#xff0c;可将集合转为列表&#xff0c;再由列表访问元素。不过&#…

Spring Boot 进阶-实战Spring Boot整合Swagger3.0

说到Swagger有人会问Swagger到底是什么?作为一个后端开发人员来讲,为什么要使用Swagger呢?因为我们现在完成的项目大多数情况下都是前后端分离的项目,而对于前端开发人员来讲,他们需要调用接口,才能获取到对应的数据。那么这个接口如何获取,总不能是后端开发人员弄好之后…

xianshan分支预测单元基础与top层介绍

xianshan分支预测单元基础与top层接口介绍 2 xianshan BPU分支预测器总体架构2.1 分支预测器块思想2.2 多预测器2.3 多流水线2.4 取值目标队列--FTQ2.4.1 BPU预测结果内部重定向2.4.2 FTQ2BPU 重定向请求2.4.4 BPU的update请求 2.5 总结 在这里重点介绍xianshan分支预测单元BPU…

数学建模算法与应用 第8章 时间序列分析

目录 8.1 确定性时间序列分析方法 Matlab代码示例&#xff1a;移动平均法提取趋势 8.2 平稳时间序列模型 Matlab代码示例&#xff1a;差分法与ADF检验 8.3 时间序列的Matlab相关工具箱及命令 Matlab代码示例&#xff1a;ARIMA模型的建立 8.4 ARIMA序列与季节性序列 Matl…

开发环境搭建之NVM管理NODE安装

由于项目繁多前端node环境代码不统一、所以安装切换不同版本node、所以在此记录一下安装过程&#xff1a; 下载NVM工具 nvm zip github下载安装包 简单粗暴一看就会、直接从官网下载zip安装包、然后执行命令安装所需node版本即可 下载之后直接安装&#xff1a; 安装完成之…

linux执行脚本的时候为什么要写成 ./脚本名 而不是用脚本名直接执行

原因&#xff1a; 一定要写成 ./test.sh&#xff0c;而不是 test.sh&#xff0c;运行其它二进制的程序也一样&#xff0c;直接写 test.sh&#xff0c;linux 系统会去 PATH 里寻找有没有叫 test.sh 的&#xff0c;而只有 /bin, /sbin, /usr/bin&#xff0c;/usr/sbin 等在 PATH…

查询v$asm_disk等待enq: DD - contention

1.两个节点查询v$asm_disk均卡住&#xff0c;等待enq: DD - contention&#xff0c;阻塞源头为rbal进程&#xff0c;rbal进程未发生阻塞&#xff0c;未在异常等待事件上。 2.阻塞源头RBAL&#xff0c;在CPU上运行。没有在做rebalance磁盘平衡。 3.diag诊断日志中&#xff0c;阻…