🌐 Ubuntu 20.04 安装 Node.js 20.x、npm、cnpm 和 pnpm 完整指南 🚀

在本文中,我们将介绍如何在 Ubuntu 20.04 上安装 Node.js 20.x,以及如何安装 npmcnpmpnpm 来提高开发效率 ⚡。


1️⃣ 安装 Node.js 20.x

为了确保使用最新的 Node.js 版本,我们需要通过 NodeSource 仓库来安装 Node.js 20.x。这样可以确保你安装到最新版本的稳定版。

步骤 1: 更新系统并安装依赖

首先,我们需要确保你的系统是最新的,并且安装了必要的工具(如 curlgnupg):

sudo apt update && sudo apt upgrade -y
sudo apt install -y ca-certificates curl gnupg

🔧 解释:这些命令会确保你的系统软件包是最新的,并且安装 curlgnupg,它们在添加仓库时非常有用。

image-20250227235549402


步骤 2: 添加 NodeSource 仓库

接下来,使用 NodeSource 提供的安装脚本来添加 Node.js 20.x 的仓库:

curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -

🌍 解释:这行命令会自动配置 Node.js 20.x 的软件源,以便从官方源安装最新版本。

image-20250227235634026


步骤 3: 安装 Node.js 20.x

仓库添加成功后,可以使用以下命令来安装 Node.js 20.x

sudo apt install -y nodejs

🔨 解释:通过 apt 安装 Node.js 及其依赖。

image-20250227235648310


步骤 4: 验证安装

安装完成后,使用以下命令验证 Node.js 是否成功安装:

node -v

📜 结果:你应该看到类似 v20.x.x 的版本号输出,证明安装成功。

image-20250227235704899


2️⃣ 安装 npm(Node.js 包管理器)

npm 是与 Node.js 一同安装的包管理工具。如果你需要更新到最新版本,可以使用以下命令。

步骤 1: 升级 npm

如果需要升级 npm 到最新版本,运行:

sudo npm install -g npm

🔧 解释:该命令会将 npm 升级到最新版本。


步骤 2: 验证 npm 版本

安装完成后,检查当前 npm 版本:

npm -v

🔍 解释:你应该看到 npm 的版本号(例如:9.x.x),这证明 npm 已经成功安装并升级。


3️⃣ 安装 cnpm(淘宝镜像)

cnpm 是淘宝团队维护的 npm 镜像,能够加速国内用户的包下载速度。如果你在中国,可以使用 cnpm 来替代 npm,享受更快的安装速度 🚀。

步骤 1: 安装 cnpm

使用 npm 安装 cnpm,并指定淘宝镜像源:

npm install -g cnpm --registry=https://registry.npmmirror.com

🌟 解释:这行命令会全局安装 cnpm,并且让它使用淘宝的 npm 镜像源。


步骤 2: 验证 cnpm 安装

安装后,验证 cnpm 是否正确安装:

cnpm -v

🎉 结果:你应该看到 cnpm 的版本信息(例如 9.4.0),证明安装成功。


4️⃣ 安装 pnpm(高效的包管理工具)

pnpm 是一个高效的包管理器,与 npmyarn 类似,但它使用了硬链接(hard-linking)来提高性能和节省磁盘空间。它是一个快速而高效的选择,尤其适合大项目的依赖管理 🔥。

步骤 1: 安装 pnpm

通过 npm 安装 pnpm

npm install -g pnpm

🔧 解释:这行命令会通过 npm 安装 pnpm


或者,你也可以使用更直接的方法通过 cURL 安装:

curl -fsSL https://get.pnpm.io | sh -

🌍 解释:这将从 pnpm 官方获取最新的安装脚本,并直接执行。


步骤 2: 验证 pnpm 安装

安装完成后,验证 pnpm 是否正确安装:

pnpm -v

🎉 结果:你应该看到 pnpm 的版本号(例如 10.x.x),说明安装成功。

image-20250227235732938


总结 📋

现在已经成功在 Ubuntu 20.04 上安装了以下工具啦!

  • Node.js 20.x:通过 NodeSource 仓库安装。
  • npm:安装并升级到最新版本。
  • cnpm:通过淘宝镜像加速 npm 包的下载。
  • pnpm:高效的包管理器,快速处理 Node.js 依赖。

以上工具组合能显著提高开发效率,尤其在国内使用 cnpmpnpm 时,能够更快速地下载和管理依赖。💨


如果你有任何问题或需要进一步的帮助,随时在评论区留言或者直接联系我。祝你在 Node.js 世界中愉快开发!🚀


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

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【时时三省】(C语言基础)通过指针引用数组元素

山不在高,有仙则名。水不在深,有龙则灵。 ----CSDN 时时三省引用一个数组元素,可以用下面两种方法:( 1 )下标法,如a[i]形式;( 2 )指针法,如* ( a i )或* ( p i )。其中a是数组名,p…

Guava LoadingCache

LoadingCache 是 Google Guava 库提供的一个高级缓存实现,它通过自动加载机制简化了缓存使用模式。核心特性自动加载机制当缓存未命中时,自动调用指定的 CacheLoader 加载数据线程安全:并发请求下,相同key只会加载一次灵活的过期策…

基于LSTM-GRU模型的黄金价格动态监测:关税政策与美指的量化关联研究

摘要:本文通过BERT-Large模型对关税政策进行语义解析,结合LSTM-GRU混合模型、DCC-GARCH动态相关性模型及蒙特卡洛情景分析,量化解析7月11日黄金价格异动背后的三大驱动因子——政策冲击、美元指数压制与美联储政策不确定性,提供AI…

V少JS基础班之第七弹

文章目录一、 前言二、本节涉及知识点三、重点内容1、prototype2、constructor3、中场回顾&总结4、__ proto__5、第二次中场回顾&总结6、原型链6、第三次中场回顾&总结7、原型链中的奇点一、 前言 第七弹内容是原型链。网络上原型链的资料很多。但是我看了很多篇&…

Nuxt3自动打包及自动修改端口号脚本

Nuxt3自动打包及自动修改端口号脚本技术文章大纲 背景与需求 Nuxt3作为现代Vue框架,开发中常需处理打包部署和端口配置问题。自动化脚本可提升效率,减少手动操作错误。 实现自动打包 利用Nuxt3内置命令结合Node.js脚本实现自动化构建。通过npm run build…

红海云国资案例之多层级工贸集团的一体化HR平台建设实战

在中国经济迈向高质量发展的进程中,国有企业作为重要的经济支柱和行业引领者,正面临着数字化转型的深刻变革。F集团作为G市首家实现工贸一体化运营的大型企业,位列中国轻工业百强,其在人力资源数字化转型中的探索和实践&#xff0…

TCP详解——流量控制、滑动窗口

目录 流量控制 滑动窗口 丢包重传 情况一:数据到达,应答丢失 情况二:数据包丢失 流量控制 TCP协议会根据接收端的缓冲区大小来调整发送速度,剩余空间多则发送速度快,否则降低发送速度 接收端将⾃⼰可以接收的缓…

C#高级特性面试问题的详细分析,涵盖核心概念、应用场景和最佳实践

序列化与反序列化 1. 什么是序列化和反序列化?用途是什么? // 序列化示例 Person person new Person { Name "Alice", Age 30 }; string json JsonSerializer.Serialize(person); // 序列化为JSON// 反序列化示例 Person deserialized Js…

【电脑】内存的基础知识

内存(Memory)是计算机中用于临时存储数据和程序的地方,它直接影响到系统的运行速度和性能。以下是关于内存的详细知识:1. 内存类型常见的内存类型包括以下几个主要种类:SDRAM (Synchronous Dynamic Random Access Memo…

Java---IDEA

IDEA概述 IDEA:全称Intellij IDEA,是用于Java语言开发的集成开发环境 集成环境:把代码编写,编译,运行,调试等多种功能综合到一起的开发工具 下载与安装 下载:IntelliJ IDEA – the IDE for …

【每日刷题】x 的平方根

69. x 的平方根 - 力扣(LeetCode) 方法一:暴力 从0开始遍历,直到 ans*ans > x 为止,这时ans-1就是答案。需要注意可能会爆int,所以ans要开为long,最后再转换为int。 class Solution {publ…

C#元组:从基础到实战的全方位解析

C#元组:从基础到实战的全方位解析 在 C# 编程中,元组(Tuple)是一种轻量级的数据结构,用于临时存储多个不同类型的元素。无论是方法返回多个值、LINQ 查询中的临时投影,还是简化数据传递,元组都以…

Django母婴商城项目实践(二)

2、母婴商城项目环境配置 环境配置: Python3.12 解释器Pycharm Professional 2025.1 编辑器Django 4.2(或 Django 5.x)MySQL 8.0.28 数据库 1、Django框架 介绍 Django是一个高级的Python Web应用框架,可以快速开发安全和可维护的网站。由经验丰富的开发者构建,Django负责…

Go语言的Channel通道的含义。区分缓冲通道和非缓冲通道,并讨论通道的发送、接收、关闭以及如何安全地从已关闭的通道读取数据。

非缓冲通道:非缓冲通道在确定时没有声明容量大小,发送和接收操作会同步阻塞,直到另一端准备好。发送方和接收方必须同时就绪才能完成数据交换,否则会阻塞。常用于goroutine之间的同步通信。缓冲通道:缓冲通道在确定时就…

tensor

😉如果您想用jupyter notebook跑我的笔记,可以在下面获取ipynb版本 😊麻烦给个免费的star😘 ❤️主包也更建议这种形式,上面的笔记也更加全面,每一步都有直观的输出 文章目录📚 PyTorch张量操作…

STM32-DAC数模转换

DAC数模转换:将数字信号转换成模拟信号特性:2个DAC转换器每个都拥有一个转换通道8位或12位单调输出(8位右对齐;12位左对齐右对齐)双ADC通道同时或者分别转换外部触发中断电压源控制部分(外部触发3个APB1&am…

前后端集合如何传递

前端vue后端rest风格&#xff1a;1.路径传参&#xff08;参数必传&#xff09;&#xff0c;通过pathvarible注解后端&#xff1a;DeleteMapping("/{YYIDs}")public R<Void> remove(NotEmpty(message "主键不能为空")PathVariable String[] YYIDs) {…

1353. 最多可以参加的会议数目

1353. 最多可以参加的会议数目 题目链接&#xff1a;1353. 最多可以参加的会议数目 代码如下&#xff1a; class Solution { public:int maxEvents(vector<vector<int>>& events) {int mx 0;for (auto& e : events) {mx max(mx, e[1]); // 找到最大的结…

OCR 本地版本

UMI OCR 支持本地部署&#xff0c;支持HTTP OCR

大数据驱动的酒店用品需求预测模型研究 开发——毕业论文,毕业设计——仙盟创梦IDE

主页酒店用品 平台协议促销毕业论文摘要本研究旨在构建基于大数据分析的酒店用品需求预测模型&#xff0c;以提高酒店用品批发企业的库存管理效率和供应链响应速度。研究整合了酒店历史采购数据、季节因素、市场趋势、节假日信息等多源数据&#xff0c;通过对比传统时间序列模型…