当前位置: 首页 > news >正文

开发环境搭建-3:配置 JavaScript 开发环境 (fnm+ nodejs + pnpm + nrm)

在 WSL 环境中配置:WSL2 (2.3.26.0) + Oracle Linux 8.7 官方镜像

node 官网:https://nodejs.org/zh-cn/download

点击【下载】,选择想要的 node 版本、操作系统、node 版本管理器、npm包管理器
根据下面代码提示依次执行对应代码即可

基本概念说明

  1. nodejs = 可以脱离浏览器在本地运行 js 代码的环境
    = JS 解析器 + 一套用于与外部交互的底层接口(如网络、文件、存储等)
  2. node 版本管理器:允许一台电脑上安装多个不同版本的 nodejs
    –> 类比:使用 conda 或 uv 管理一台电脑上安装的多个 python 版本
  3. node 版本:当前使用版本管理器安装的版本
    与 Linux 系统版本类似,有 LTS 版本和普通版本
  4. npm 包:js 中软件包的格式
    –> 类比:python 中的 pip 包
  5. npm 包管理器:管理 npm 包的工具
    –> 类比:python 中的 pip

推荐软件包选取

其实就是官网的默认推荐内容
  1. node 版本:最新的 LTS 版本
  2. node 版本管理器:fnm
    官网介绍(github 需要梯子):https://github.com/Schniz/fnm
    使用 Rust 构建的最新一代 node 版本管理工具,轻量、速度快
  3. 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
  1. 第一步(下载并安装 node 管理器)安装过程中需要系统安装有curlunzip软件

    1. 如果没有安装会报 Missing 然后退出(以下是有 curl 但是缺少 unzip 的情况)
    2. 使用以下指令安装(以 WSL Oracle Linux 系统为例)
      sudo dnf install unzip curl
      
  2. 如果在 fnm install 和 corepack enable pnpm 时很慢,则可能是因为网络问题

    1. 需要配置梯子
    2. 也可配置 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 包管理器

  1. 临时配置:直接在终端输入export命令

    export COREPACK_NPM_REGISTRY ="<软件源路径>"# 示例:使用腾讯源的路径
    export COREPACK_NPM_REGISTRY="https://mirrors.cloud.tencent.com/npm/"
    
  2. 永久配置:将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
  1. 如果遇到 Unable to find the global bin directory(无法找到全局软件包路径)这种问题

    请参考上面的章节,先进行 pnpm 的初始化

安装成功示例(最后有个 Done,其中间没有 ERROR 提示)

运行nrm进行换源,相关指令

  • 帮助:mrn -h
  • 查看当前使用的源:nrm current
  • 查看当前可替换的源:nrm ls 列表输出的左列为源名称
  • 设置要使用的源:nvm use 源名称
    下面截图以taobao源为例

相关文章:

开发环境搭建-3:配置 JavaScript 开发环境 (fnm+ nodejs + pnpm + nrm)

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

kotlin内联函数——let,run,apply,also,with的区别

一、概述 为了帮助您根据使用场景选择合适的作用域函数&#xff08;scope function&#xff09;&#xff0c;我们将对它们进行详细描述并提供使用建议。从技术上讲&#xff0c;许多情况下范围函数是可以互换使用的&#xff0c;因此示例中展示了使用它们的约定俗成的做法。 1.…...

【深度学习|DenseNet-121】Densely Connected Convolutional Networks内部结构和参数设置

【深度学习|DenseNet-121】Densely Connected Convolutional Networks内部结构和参数设置 【深度学习|DenseNet-121】Densely Connected Convolutional Networks内部结构和参数设置 文章目录 【深度学习|DenseNet-121】Densely Connected Convolutional Networks内部结构和参数…...

数据结构与算法-要点整理

知识导图: 一、数据结构 包含:线性表(数组、队列、链表、栈)、散列表、树(二叉树、多路查找树)、图 1.线性表 数据之间就是“一对一“的逻辑关系。 线性表存储数据的实现方案有两种,分别是顺序存储结构和链式存储结构。 包含:数组、队列、链表、栈。 1.1 数组…...

Fort Firewall:全方位守护网络安全

Fort Firewall是一款专为 Windows 操作系统设计的开源防火墙工具&#xff0c;旨在为用户提供全面的网络安全保护。它基于 Windows 过滤平台&#xff08;WFP&#xff09;&#xff0c;能够与系统无缝集成&#xff0c;确保高效的网络流量管理和安全防护。该软件支持实时监控网络流…...

Nginx实战技巧(Practical Tips for nginx)

引言 简介 ‌Nginx&#xff08;发音为 "engine-x"&#xff09;是一个高性能的HTTP和反向代理服务器.‌ Nginx以其高并发处理能力、低资源消耗和灵活的配置而闻名&#xff0c;适用于高流量的Web服务器和应用程序。‌ Nginx的主要功能包括&#xff1a; ‌HTTP服务器…...

YOLOv8:目标检测与实时应用的前沿探索

随着深度学习和计算机视觉技术的迅速发展&#xff0c;目标检测&#xff08;Object Detection&#xff09;一直是研究热点。YOLO&#xff08;You Only Look Once&#xff09;系列模型作为业界广受关注的目标检测框架&#xff0c;凭借其高效、实时的特点&#xff0c;一直迭代更新…...

解锁数字经济新动能:探寻 Web3 核心价值

随着科技的快速发展&#xff0c;我们正迈入一个全新的数字时代&#xff0c;Web3作为这一时代的核心构成之一&#xff0c;正在为全球数字经济带来革命性的变革。本文将探讨Web3的核心价值&#xff0c;并如何推动数字经济的新动能。 Web3是什么&#xff1f; Web3&#xff0c;通常…...

Lua 环境的安装

1.安装Lua运行环境 本人采用的是在windows系统中使用cmd指令方式进行安装&#xff0c;安装指令如下&#xff1a; winget install "lua for windows" 也曾使用可执行程序安装过&#xff0c;但由于电脑是加密电脑&#xff0c;最后都已失败告终。使用此方式安装可以安…...

Object类(2)

大家好&#xff0c;今天我们继续来看看Object类中一些成员方法&#xff0c;这些方法在实际中有很大的用处&#xff0c;话不多说&#xff0c;来看。 注&#xff1a;所有类都默认继承Object类的&#xff0c;所以可调用Object类中的方法&#xff0c;如equals&#xff0c;也可以发生…...

汽车网络信息安全-ISO/SAE 21434解析(中)

目录 第七章-分布式网络安全活动 1. 供应商能力评估 2. 报价 3. 网络安全职责界定 第八章-持续的网络安全活动 1. 网路安全监控 2. 网络安全事件评估 3. 漏洞分析 4. 漏洞管理 第九章-概念阶段 1. 对象定义 2. 网路安全目标 3. 网络安全概念 第十章 - 产品开发 第十…...

fatal error C1083: ޷[特殊字符]ļ: openssl/opensslv.h: No such file or directory

一、环境 1. Visual Studio 2017 2. edk2&#xff1a;202305 3. Python&#xff1a;3.11.4 二、 fatal error C1083: ޷&#xbfab0;ļ: openssl/opensslv.h: No such file or directory 上图出现这个警告&#xff0c;不用管。 出现Done&#xff0c;说明编译成功。 执行上…...

C#System.Threading.Timer定时器意外回收注意事项

System.Threading.Timer定时器使用时会出现意外回收的情况。具体解释如下: 只要在使用 Timer,就必须保留对它的引用。对于任何托管对象,如果没有对 Timer 的引用,计时器会被垃圾回收。即使 Timer 仍处在活动状态,也会被回收。 实例对比测试 实例 定义两个类,其中一个…...

20.Word:小谢-病毒知识的科普文章❗【38】

目录 题目​ NO1.2.3文档格式 NO4.5 NO6.7目录/图表目录/书目 NO8.9.10 NO11索引 NO12.13.14 每一步操作完&#xff0c;确定之后记得保存最后所有操作完记得再次删除空行 题目 NO1.2.3文档格式 样式的应用 选中应用段落段落→开始→选择→→检查→应用一个一个应用ctr…...

vue3底层原理和性能优化

Vue 3 在底层原理和性能优化方面做了许多改进&#xff0c;以下是一些主要的优化点和原理&#xff1a; 1. 虚拟 DOM 的改进 静态树提升&#xff1a;Vue 3 能够检测到静态组件&#xff08;即不依赖响应式数据的组件&#xff09;并将其提升到渲染函数之外&#xff0c;从而减少不…...

Ubuntu介绍、与centos的区别、基于VMware安装Ubuntu Server 22.04、配置远程连接、安装jdk+Tomcat

目录 ?编辑 一、Ubuntu22.04介绍 二、Ubuntu与Centos的区别 三、基于VMware安装Ubuntu Server 22.04 下载 VMware安装 1.创建新的虚拟机 2.选择类型配置 3.虚拟机硬件兼容性 4.安装客户机操作系统 5.选择客户机操作系统 6.命名虚拟机 7.处理器配置 8.虚拟机内存…...

金融级分布式数据库如何优化?PawSQL发布OceanBase专项调优指南

前言 OceanBase数据库作为国产自主可控的分布式数据库&#xff0c;在金融、电商、政务等领域得到广泛应用&#xff0c;优化OceanBase数据库的查询性能变得愈发重要。PawSQL为OceanBase数据库提供了全方位的SQL性能优化支持&#xff0c;助力用户充分发挥OceanBase数据库的性能潜…...

springboot 动态线程池

在Spring Boot中&#xff0c;可以使用ThreadPoolTaskExecutor类来创建动态线程池。以下是一个示例&#xff1a; 首先&#xff0c;需要在配置文件中配置线程池的属性&#xff0c;例如最小线程数、最大线程数、线程存活时间等。可以在application.properties或application.yml中…...

【PySide6快速入门】qrc资源文件的使用

文章目录 PySide6快速入门&#xff1a;qrc资源文件的使用前言什么是qrc文件&#xff1f;qrc文件的作用&#xff1a; qrc文件可以干什么&#xff1f;如何创建qrc文件&#xff1f;1. 创建.qrc文件2. 使用rcc工具编译.qrc文件 如何引用qrc文件并使用资源&#xff1f;示例代码&…...

【creo】CREO配置快捷键方式和默认单位

了解CREO工作目录设置 设置快捷方式启动目录&#xff0c;就能自动加载其中的配置。 一、通过键盘快捷方式 保存配置 creo_parametric_customization.ui 文件&#xff1a; 二、通过映射键录制 通过这种方式可以监听鼠标的点击事件。使用键盘快捷方式无法找到需要的动作时候可…...

STM32F407移植QP状态机踩坑实录:从编译报错到成功运行,我解决了这三个关键问题

STM32F407移植QP状态机踩坑实录&#xff1a;从编译报错到成功运行&#xff0c;我解决了这三个关键问题 在嵌入式开发中&#xff0c;状态机是一种极其重要的编程范式&#xff0c;它能有效管理复杂系统的行为逻辑。QP&#xff08;Quantum Platform&#xff09;作为一款轻量级的状…...

别再死记硬背了!用这5个真实项目案例,彻底搞懂Python函数参数与返回值

别再死记硬背了&#xff01;用这5个真实项目案例&#xff0c;彻底搞懂Python函数参数与返回值 函数是Python编程的基石&#xff0c;但很多初学者在学完基础语法后&#xff0c;面对实际项目依然无从下手。本文将通过5个真实开发场景&#xff0c;带你从"会用"到"懂…...

Kubernetes部署Valheim游戏服务器:云原生架构实践指南

1. 项目概述&#xff1a;当维京英灵殿遇上Kubernetes如果你和我一样&#xff0c;既沉迷于《英灵神殿》&#xff08;Valheim&#xff09;里那种与三五好友一起伐木、采矿、建造长屋&#xff0c;然后被巨魔追得满地图跑的原始乐趣&#xff0c;又恰好是一名整天和容器、编排系统打…...

YimMenu:GTA V终极游戏增强工具完整实战手册

YimMenu&#xff1a;GTA V终极游戏增强工具完整实战手册 【免费下载链接】YimMenu YimMenu, a GTA V menu protecting against a wide ranges of the public crashes and improving the overall experience. 项目地址: https://gitcode.com/GitHub_Trending/yi/YimMenu …...

怎么判断一家工厂还在不在正常生产?6 类活跃度信号,从纸面到现场

跑工厂的销售员都遇到过这种事&#xff1a;手机里存着一份名单&#xff0c;导航开两小时&#xff0c;到门口才发现卷帘门焊死、车间长草、保安说"厂子去年就搬了"。 问题出在哪&#xff1f;大多数人判断"这家工厂在不在"&#xff0c;靠的是工商登记——执照…...

游戏技能工程化:用数据驱动与计算机视觉构建Apex Legends个人成长系统

1. 项目概述&#xff1a;从“Apex Growth”到“OpenClaw Skill”的爬升之路如果你是一名游戏开发者&#xff0c;尤其是对竞技类FPS&#xff08;第一人称射击&#xff09;游戏感兴趣&#xff0c;那么“Apex Legends”这个名字你一定不陌生。这款游戏以其快节奏、高机动性和深度的…...

飞书自动化工具feishu-atuo:Python积木式开发与实战指南

1. 项目概述&#xff1a;飞书自动化&#xff0c;从零到一的效率革命 如果你和我一样&#xff0c;每天的工作流里都离不开飞书&#xff0c;那你肯定也经历过这些时刻&#xff1a;手动把日报、周报从文档复制到表格里归档&#xff1b;在多个群里重复发送同样的通知&#xff1b;为…...

83.人工智能实战:RAG 表格问答怎么做?从前期发现“表格被切碎”到结构化解析、行列索引与答案校验

人工智能实战:RAG 表格问答怎么做?从前期发现“表格被切碎”到结构化解析、行列索引与答案校验 一、问题场景:Word 文档能答,Excel 表格一问就错 很多企业知识库不只有 Word 和 PDF,还有大量表格: 1. 报销标准表 2. 产品价格表 3. 客户等级表 4. SLA 服务等级表 5. 部门…...

大语言模型可靠性监测与压缩的谱方法研究

1. 大语言模型可靠性监测与压缩的谱方法研究概述在深度学习领域&#xff0c;大语言模型(LLM)和视觉语言模型(VLM)的可靠性问题与计算效率挑战日益凸显。模型幻觉(生成与输入无关或错误的内容)和分布偏移(面对训练数据分布外的输入时性能下降)会严重损害用户信任&#xff0c;而庞…...

基于Claude API构建可编程AI智能体:从对话到自动化生产单元

1. 项目概述&#xff1a;从Claude中“招聘”一个AI伙伴最近在GitHub上看到一个挺有意思的项目&#xff0c;叫“hire-from-claude”。初看这个标题&#xff0c;你可能会有点摸不着头脑&#xff1a;Claude不是Anthropic公司开发的那个AI助手吗&#xff1f;怎么还能从它那里“招聘…...