开发环境搭建-3:配置 nodejs 开发环境 (fnm+ node + pnpm)
在 WSL 环境中配置:WSL2 (2.3.26.0) + Oracle Linux 8.7 官方镜像
node 官网:https://nodejs.org/zh-cn/download
点击【下载】,选择想要的 node 版本、操作系统、node 版本管理器、npm包管理器
根据下面代码提示依次执行对应代码即可

基本概念说明
- nodejs = 可以脱离浏览器在本地运行 js 代码的环境
= JS 解析器 + 一套用于与外部交互的底层接口(如网络、文件、存储等) - node 版本管理器:允许一台电脑上安装多个不同版本的 nodejs
–> 类比:使用 conda 或 uv 管理一台电脑上安装的多个 python 版本 - node 版本:当前使用版本管理器安装的版本
与 Linux 系统版本类似,有 LTS 版本和普通版本 - npm 包:js 中软件包的格式
–> 类比:python 中的 pip 包 - npm 包管理器:管理 npm 包的工具
–> 类比:python 中的 pip
推荐软件包选取
其实就是官网的默认推荐内容- node 版本:最新的 LTS 版本
- node 版本管理器:fnm
官网介绍(github 需要梯子):https://github.com/Schniz/fnm
使用 Rust 构建的最新一代 node 版本管理工具,轻量、速度快 - npm 包管理器:pnpm
官网介绍:https://pnpm.io/zh/
最新一代 npm 包管理器,支持缓存、文件链接等特性,性能强大且能减少依赖冗余
根据官网给出的安装教程安装
选取上面的组件,官网给出的代码(请以官网代码为准,这里只是做个参考)
总体安装顺序:nodeJS 管理器 --> 特定版本的 NodeJS --> 包管理器
# 1. 下载并安装 node 管理器,这里安装 fnm
# Download and install fnm:
curl -o- https://fnm.vercel.app/install | bash# 2. 更新 bash 终端,使 fnm 命令可用
source $HOME/.bashrc# 2. 使用 node 管理器安装特定版本的 nodejs
# Download and install Node.js:
fnm install 22# 3. 检验 node 是否安装成功
# Verify the Node.js version:
node -v # Should print "v22.13.1".# 4. 安装选定的 npm 包管理器,这里选 pnpm
# 实际上在 node 20 以后,node 自带了一个 corepack 插件用于管理 npm 包管理器
# Download and install pnpm:
corepack enable pnpm# 5. 检验 npm 包管理器是否安装正常
# Verify pnpm version:
pnpm -v
-
第一步(下载并安装 node 管理器)安装过程中需要系统安装有
curl、unzip软件- 如果没有安装会报 Missing 然后退出(以下是有 curl 但是缺少 unzip 的情况)

- 使用以下指令安装(以 WSL Oracle Linux 系统为例)
sudo dnf install unzip curl
- 如果没有安装会报 Missing 然后退出(以下是有 curl 但是缺少 unzip 的情况)
-
如果在 fnm install 和 corepack enable pnpm 时很慢,则可能是因为网络问题
- 需要配置梯子
- 也可配置 fnm 的代理和 corepack 的代理
一些配置
配置 fnm 国内镜像加速
使用清华源,参考配置:https://mirrors.tuna.tsinghua.edu.cn/help/nodejs-release/
官网配置是临时配置,重启/重新登录会失效

永久配置,修改用户环境配置文件
# 1. 打开文件
vim ~/.bashrc# 2. 文件最后添加以下内容
export FNM_NODE_DIST_MIRROR="https://mirrors.tuna.tsinghua.edu.cn/nodejs-release/"# 3. 保存文件# 4. 更新配置文件
source ~/.bashrc# 5. 之后就可以正常使用 fnm 了
配置 corepack 的国内镜像加速
根据官网文档进行配置:https://github.com/nodejs/corepack?tab=readme-ov-file#environment-variables

配置COREPACK_NPM_REGISTRY环境变量,指定从国内源中下载 npm 包管理器
-
临时配置:直接在终端输入
export命令export COREPACK_NPM_REGISTRY ="<软件源路径>"# 示例:使用腾讯源的路径 export COREPACK_NPM_REGISTRY="https://mirrors.cloud.tencent.com/npm/" -
永久配置:将
export指令放到/root/.bashrc配置文件中,并刷新配置# 1. 用文本编辑器打开 /root/.bashrc 配置文件 vim ~/.bashrc# 2. 添加这一行:将临时的指令固化为永久配置 # 配置示例参考上面的【临时配置】 export COREPACK_NPM_REGISTRY="<软件源路径>"# 3. 文件保存退出# 4. 刷新刚才修改的配置文件,使修改生效 source /root/.bashrc
pnpm 初始化配置
使用pnpm setup进行初始化设置
pnpm setup
执行完成的结果示例
执行完成后,需要依照执行结果,更新 bash(就是运行上面截图最后一行的指令 source XXX)
配置 pnpm 的国内镜像加速(使用 mrn 管理)
参考文章:https://ksh7.com/posts/npm-registry
使用 mrn 这个 npm 包进行镜像加速,这里配置的是阿里淘宝源
查看默认配置
pnpm config list

可看到软件源registry是国外的官网
使用包管理器(pnpm)安装nvm包
pnpm add -g nrm
- 如果遇到 Unable to find the global bin directory(无法找到全局软件包路径)这种问题

请参考上面的章节,先进行 pnpm 的初始化
安装成功示例(最后有个 Done,其中间没有 ERROR 提示)

运行nrm进行换源,相关指令
- 帮助:
mrn -h - 查看当前使用的源:
nrm current - 查看当前可替换的源:
nrm ls列表输出的左列为源名称

- 设置要使用的源:
nvm use 源名称
下面截图以taobao源为例

相关文章:
开发环境搭建-3:配置 nodejs 开发环境 (fnm+ node + pnpm)
在 WSL 环境中配置:WSL2 (2.3.26.0) Oracle Linux 8.7 官方镜像 node 官网:https://nodejs.org/zh-cn/download 点击【下载】,选择想要的 node 版本、操作系统、node 版本管理器、npm包管理器 根据下面代码提示依次执行对应代码即可 基本概…...
深入理解Pytest中的Setup和Teardown
关注开源优测不迷路 大数据测试过程、策略及挑战 测试框架原理,构建成功的基石 在自动化测试工作之前,你应该知道的10条建议 在自动化测试中,重要的不是工具 对于简单程序而言,使用 Pytest 运行测试直截了当。然而,当你…...
一个局域网通过NAT访问另一个地址重叠的局域网(IP方式访问)
正文共:1335 字 7 图,预估阅读时间:4 分钟 现在,我们已经可以通过调整两台设备的组合配置(地址重叠时,用户如何通过NAT访问对端IP网络?)或仅调整一台设备的配置(仅操作一…...
MongoDB中常用的几种高可用技术方案及优缺点
MongoDB 的高可用性方案主要依赖于其内置的 副本集 (Replica Set) 和 Sharding 机制。下面是一些常见的高可用性技术方案: 1. 副本集 (Replica Set) 副本集是 MongoDB 提供的主要高可用性解决方案,确保数据在多个节点之间的冗余存储和自动故障恢复。副…...
DeepSeek学术题目选择效果怎么样?
论文选题 一篇出色的论文背后,必定有一个“智慧的选题”在撑腰。选题足够好文章就能顺利登上高水平期刊;选题不行再精彩的写作也只能“当花瓶”。然而许多宝子们常常忽视这个环节,把大量时间花在写作上,选题时却像抓阄一样随便挑一…...
Lesson 119 A true story
Lesson 119 A true story 词汇 story n. 故事,传记,小说,楼层storey 搭配:tell a story 讲故事,说谎 true story 真实的故事 the second floor 二楼 例句:我猜他正在说谎。 I guess he…...
正反转电路梯形图
1、正转联锁控制。按下正转按钮SB1→梯形图程序中的正转触点X000闭合→线圈Y000得电→Y000自锁触点闭合,Y000联锁触点断开,Y0端子与COM端子间的内部硬触点闭合→Y000自锁触点闭合,使线圈Y000在X000触点断开后仍可得电。 Y000联锁触点断开&…...
Java并发学习:进程与线程的区别
进程的基本原理 一个进程是一个程序的一次启动和执行,是操作系统程序装入内存,给程序分配必要的系统资源,并且开始运行程序的指令。 同一个程序可以多次启动,对应多个进程,例如同一个浏览器打开多次。 一个进程由程…...
解锁罗技键盘新技能:轻松锁定功能键(罗技K580)
在使用罗技键盘的过程中,你是否曾因 F11、F12 功能键的默认设置与实际需求不符而感到困扰? 别担心,今天就为大家分享一个简单实用的小技巧 —— 锁定罗技键盘的 F11、F12 功能键,让你的操作更加得心应手! 通常情况下…...
分布式微服务系统架构第88集:kafka集群
使用集 群最大的好处是可以跨服务器进行负载均衡,再则就是可以使用复制功能来避免因单点故 障造成的数据丢失。在维护 Kafka 或底层系统时,使用集群可以确保为客户端提供高可用 性。 需要多少个broker 一个 Kafka 集群需要多少个 broker 取决于以下几个因…...
ESP32-S3模组上跑通esp32-camera(33)
接前一篇文章:ESP32-S3模组上跑通esp32-camera(32) 一、OV5640初始化 2. 相机初始化及图像传感器配置 上一回开始解析camera_probe函数的第8段即最后一段代码,本回继续解析该段代码。为了便于理解和回顾,再次贴出camera_probe函数源码,在components/esp32-camera/drive…...
一次端口监听正常,tcpdump无法监听到指定端口报文问题分析
tcpdump命令: sudo tcpdump -i ens2f0 port 6471 -XXnnvvv 下面是各个部分的详细解释: 1.tcpdump: 这是用于捕获和分析网络数据包的命令行工具。 2.-i ens2f0: 指定监听的网络接口。ens2f0 表示本地网卡),即计算机该指定网络接口捕…...
高可用集群故障之join
本文记录了在部署高可用的k8s集群时,遇到的一个故障及其解决方法。 集群环境 描述:三主三从,eth0为外网网卡,eth1为内网网卡,内网互通。 需求:eth0只负责访问外网,eth1作为集群间的通信。 主…...
uniapp版本升级
1.样式 登录进到首页,弹出更新提示框,且不可以关闭,侧边返回直接退出! 有关代码: <uv-popup ref"popupUpdate" round"8" :close-on-click-overlay"false"><view style"…...
Ubuntu 20.04 x64下 编译安装ffmpeg
试验的ffmpeg版本 4.1.3 本文使用的config命令 ./configure --prefixhost --enable-shared --disable-static --disable-doc --enable-postproc --enable-gpl --enable-swscale --enable-nonfree --enable-libfdk-aac --enable-decoderh264 --enable-libx265 --enable-libx…...
【Web开发】一步一步详细分析使用Bolt.new生成的简单的VUE项目
https://bolt.new/ 这是一个bolt.new生成的Vue小项目,让我们来一步一步了解其架构,学习Vue开发,并美化它。 框架: Vue 3: 用于构建用户界面。 TypeScript: 提供类型安全和更好的开发体验。 Vite: 用于快速构建和开发 主界面如下:…...
SpringBoot源码解析(八):Bean工厂接口体系
SpringBoot源码系列文章 SpringBoot源码解析(一):SpringApplication构造方法 SpringBoot源码解析(二):引导上下文DefaultBootstrapContext SpringBoot源码解析(三):启动开始阶段 SpringBoot源码解析(四):解析应用参数args Sp…...
在ubuntu下一键安装 Open WebUI
该脚本用于自动化安装 Open WebUI,并支持以下功能: 可选跳过 Ollama 安装:通过 --no-ollama 参数跳过 Ollama 的安装。自动清理旧目录:如果安装目录 (~/open-webui) 已存在,脚本会自动删除旧目录并重新安装。完整的依…...
Flutter子页面向父组件传递数据方法
在 Flutter 中,如果父组件需要调用子组件的方法,可以通过以下几种方式实现。以下是常见的几种方法: 方法 1:使用 GlobalKey 和 State 调用子组件方法 这是最直接的方式,通过 GlobalKey 获取子组件的 State,…...
论文阅读 AlphaFold 2
用AlphaFold进行非常精确的蛋白质结构的预测(AlphaFold2) 发表于2021年07月15日 NatureDOI: 10.1038/s41586-021-03819-2自然和科学杂志评选为2021年最重要的科学突破之一2021年AI在科学界最大的突破 前言 2020年11月30号, deepmind博客说AlphaFold解决了50年以来生物学的大挑…...
计算机网络 (62)移动通信的展望
一、技术发展趋势 6G技术的崛起 内生智能:6G将强调自适应网络架构,通过AI驱动的智能算法提升通信能力。例如,基于生成式AI的6G内生智能架构将成为重要研究方向,实现低延迟、高效率的智能通信。信息编码与调制技术:新型…...
如何学习Java后端开发
文章目录 一、Java 语言基础二、数据库与持久层三、Web 开发基础四、主流框架与生态五、分布式与高并发六、运维与部署七、项目实战八、持续学习与提升总结路线图 学习 Java 后端开发需要系统性地掌握多个技术领域,从基础到进阶逐步深入。以下是一个详细的学习路线和…...
探索与创新:DeepSeek R1与Ollama在深度研究中的应用
在当今信息爆炸的时代,获取和处理信息的能力变得至关重要。特别是在学术和研究领域,如何有效地进行深度研究是一个亟待解决的问题。最近,一个名为DeepSeek R1的模型结合Ollama平台提供了一种创新的解决方案。本文将分析并解构这一新兴的研究工…...
Linux 常用命令 - sort 【对文件内容进行排序】
简介 sort 命令源于英文单词 “sort”,表示排序。其主要功能是对文本文件中的行进行排序。它可以根据字母、数字、特定字段等不同的标准进行排序。sort 通过逐行读取文件(没有指定文件或指定文件为 - 时读取标准输入)内容,并按照…...
mantisbt添加修改用户密码
文章目录 问题当前版本安装流程创建用户修改密码老的方式探索阶段 问题 不太好改密码啊。貌似必须要域名要发邮件。公司太穷,看不见的东西不关心,只能改源码了。 当前版本 当前mantisbt版本 2.27 php版本 7.4.3 安装流程 (下面流程不是…...
记录 | Docker的windows版安装
目录 前言一、1.1 打开“启用或关闭Windows功能”1.2 安装“WSL”方式1:命令行下载方式2:离线包下载 二、Docker Desktop更新时间 前言 参考文章:Windows Subsystem for Linux——解决WSL更新速度慢的方案 参考视频:一个视频解决D…...
【Elasticsearch】内置分词器和IK分词器
🧑 博主简介:CSDN博客专家,历代文学网(PC端可以访问:https://literature.sinhy.com/#/?__c1000,移动端可微信小程序搜索“历代文学”)总架构师,15年工作经验,精通Java编…...
2025美赛数学建模C题:奥运金牌榜,完整论文代码模型目前已经更新
2025美赛数学建模C题:奥运金牌榜,完整论文代码模型目前已经更新,获取见文末名片...
HarmonyOS:ForEach:循环渲染
一、前言 ForEach接口基于数组类型数据来进行循环渲染,需要与容器组件配合使用,且接口返回的组件应当是允许包含在ForEach父容器组件中的子组件。例如,ListItem组件要求ForEach的父容器组件必须为List组件。 API参数说明见:ForEa…...
Effective C++ 规则50:了解 new 和 delete 的合理替换时机
1、背景 在 C 中,new 和 delete 是动态分配内存的核心操作符。然而,直接使用它们有时会增加程序的复杂性,甚至导致内存泄漏和其他问题。因此,了解何时替换 new 和 delete 并选择更适合的内存管理策略,是编写高效、健壮…...
