asdf安装不同版本的nodejs和yarn和pnpm
安装asdf
安装nodejs
nodejs版本

目前项目中常用的是14、16和18
安装插件
asdf plugin add nodejs https://github.com/asdf-vm/asdf-nodejs.git
asdf plugin-add yarn https://github.com/twuni/asdf-yarn.git
可以查看获取所有的nodejs版本
asdf list all nodejs
有很多找到自己的想要的即可

可以查看大版本下的小版本
asdf list all nodejs 14
asdf list all nodejs 16
asdf list all nodejs 18

这里挑选的版本为:14.21.3.、16.20.2、18.19.0

asdf list all yarn

asdf install nodejs 14.21.3
asdf install nodejs 16.20.2
asdf install nodejs 18.19.0
# asdf install yarn 1.22.21
# asdf install yarn 1.22.10


刚刚上面的方式是默认全局安装,将之前的卸载,可以选择本地本安装
# 将nodejs 14.21.3设置为全局
asdf global nodejs 14.21.3
# 卸载nodejs 14.21.3版本
# asdf uninstall nodejs 14.21.3
# 重新安装 asdf install nodejs 14.21.3
asdf local nodejs 14.21.3



建议使用pnpm包管理器,可以用pnpm管理多个nodejs版本,下篇文章就研究pnpm管理多个nodejs
pnpm安装以及管理多个nodejs版本
失败记录
安装yarn
nodejs18以上才可以
asdf global nodejs 18.19.0# nodejs<16.10,因为nodejs14太老了不支持,所以不安装其他包了
npm i -g corepack
# nodejs >=16.10
corepack enable
corepack prepare yarn@latest --activate # 这里需要指定版本,我制定了
asdf reshim nodejs 18.19.0
安装pnpm
nodejs18以上才可以
asdf global nodejs 18.19.0# nodejs<16.10,因为nodejs14太老了不支持,所以不安装其他包了
npm i -g corepack
# nodejs >=16.10
corepack enable
corepack prepare pnpm@latest --activate
asdf reshim nodejs 18.19.0
应该是yarn安装的插件比较老,一直安装不上

下面的方式有问题不推荐,还是只能安装一个yarn,只有一个nodejs版本可以用
这样就可以针对单个项目使用了,开启对应的yarn
asdf install nodejs 16.20.2
cd node16
asdf local nodejs 16.20.2
asdf install nodejs 18.19.0
cd node18
asdf local nodejs 18.19.0
# nodejs<16.10,因为nodejs14太老了不支持,所以不安装其他包了
npm i -g corepack
# nodejs >=16.10
corepack enable
corepack prepare yarn@latest --activate # 需要写清楚yarn版本号,这里使用的是4.0.2
asdf reshim nodejs 16.20.2asdf reshim nodejs 18.19.0
查看yarn版本https://github.com/yarnpkg/berry/releases




相关文章:
asdf安装不同版本的nodejs和yarn和pnpm
安装asdf 安装nodejs nodejs版本 目前项目中常用的是14、16和18 安装插件 asdf plugin add nodejs https://github.com/asdf-vm/asdf-nodejs.git asdf plugin-add yarn https://github.com/twuni/asdf-yarn.git可以查看获取所有的nodejs版本 asdf list all nodejs有很多找…...
Spring的事件监听机制
这里写自定义目录标题 1. 概述(重点)2. ApplicationEventMulticaster2.1 SimpleApplicationEventMulticaster2.2 AbstractApplicationEventMulticaster 3. ApplicationListener3.1 注册监听器3.2 自定义 4. SpringApplicationRunListeners 1. 概述&#…...
Zookeeper分布式命名服务实战
目录 分布式命名服务 分布式API目录 分布式节点的命名 分布式的ID生成器 分布式的ID生成器方案: 基于Zookeeper实现分布式ID生成器 基于Zookeeper实现SnowFlakeID算法 分布式命名服务 命名服务是为系统中的资源提供标识能力。ZooKeeper的命名服务主要是利用Z…...
DEV-C++ ege.h库 绘图教程(六)
一、前情回顾 DEV-C ege.h库 绘图教程(一) DEV-C ege.h库 绘图教程(二) DEV-C ege.h库 绘图教程(三) DEV-C ege.h库 绘图教程(四) DEV-C ege.h库 绘图教程(五)…...
MySQL原理(一)架构组成之物理文件组成
目录 一、日志文件 1、错误日志 Error Log 1.1、作用: 1.2、开启关闭: 1.3、使用 2、二进制日志 Binary Log & Binary Log Index 2.1、作用: 2.2、开启关闭: 2.3、Binlog还有一些附加选项参数 (1&#x…...
代码随想录算法训练营第三十七天 | 738.单调递增的数字、 968.监控二叉树
题目链接:738.单调递增的数字 文章讲解:代码随想录 738.单调递增的数字讲解 视频讲解:贪心算法,思路不难想,但代码不好写!LeetCode:738.单调自增的数字 思路和解法 题目: 当且仅当每个相邻位…...
【Django-ninja】django-ninja的hello world
django-ninja简介 Django Ninja是一个用于使用Django和Python 3.6类型提示构建API的Web框架。 主要特点: 易用性:旨在易于使用和直观。 高性能执行:由于Pydantic和异步支持,具有非常高的性能。 编码效率高:类型提…...
ArrayList集合初始化长度是多少,初始化的时候分配内存空间吗
ArrayList一旦初始化,在内存中就会分配空间吗 是的,当ArrayList在Java中初始化时,即使它没有添加任何元素,也会立即分配内存空间。具体来说,对于默认构造函数创建的ArrayList(即不指定初始容量)…...
C语言数组:从入门到进阶
前言: 在这篇博客中,我们将学习如何使用C语言数组的基本知识。数组是C语言中的一种重要数据结构,它允许我们存储一系列相同类型的数据。我们将讨论数组的定义、初始化、访问元素、遍历数组以及数组的应用场景。此外,我们还将通过…...
9.回文数
回文数 将整型转换为字符型反转前一半是否等于后一半将数字本身反转输入一个整数 x,如果 x是一个回文整数,返回 true;否则,返回 false 。 回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。 例如,121 是回文,而 123 不是。 将整型转换为字符型 反转…...
一分钟在SpringBoot项目中使用EMQ
先展示最终的结果: 生产者端: RestController RequiredArgsConstructor public class TestController {private final MqttProducer mqttProducer;GetMapping("/test")public String test() {User build User.builder().age(100).sex(1).address("世界潍坊渤…...
SOME/IP 协议介绍(七)传输 CAN 和 FlexRay 帧
SOME/IP 不应仅用于传输 CAN 或 FlexRay 帧。但是,消息 ID 空间需要在两种用例之间进行协调。 传输 CAN/FlexRay 应使用完整的 SOME/IP 标头。 AUTOSAR Socket-Adapter 使用消息 ID 和长度来构建所需的内部 PDU,但不会查看其他字段。因此,必…...
与数组相关经典面试题
𝙉𝙞𝙘𝙚!!👏🏻‧✧̣̥̇‧✦👏🏻‧✧̣̥̇‧✦ 👏🏻‧✧̣̥̇:Solitary-walk ⸝⋆ ━━━┓ - 个性标签 - :来于“云”的“羽球人”。…...
数据结构与算法面试系列-02
1. 一个整数,它加上100后是一个完全平方数,加上168又是一个完全平方数,请问该数是多少? 程序分析:在10万以内判断,先将该数加上100后再开方,再将该数加上168后再开方,如果开方后的结果满足如下条件,即是结果。请看具体分析: 程序代码如下: package com.yoodb.uti…...
CMake 完整入门教程(五)
CMake 使用实例 13.1 例子一 一个经典的 C 程序,如何用 cmake 来进行构建程序呢? //main.c #include <stdio.h> int main() { printf("Hello World!/n"); return 0; } 编写一个 CMakeList.txt 文件 ( 可看做 cmake 的…...
pgsql中with子句和直接查询差别
1、代码的可读性和维护性: 当查询较为复杂时,WITH子句可以将复杂的查询分解成多个简单的步骤,每个步骤都可以有一个易于理解的名字。这样做提高了代码的可读性,也便于后期维护。 2、代码的重用性: 在WITH子句中定义…...
Day 31 | 贪心算法 理论基础 、455.分发饼干 、 376. 摆动序列 、 53. 最大子序和
理论基础 文章讲解 455.分发饼干 题目 文章讲解 视频讲解 思路:从小饼干开始喂小胃口 class Solution {public int findContentChildren(int[] g, int[] s) {Arrays.sort(g);Arrays.sort(s);int start 0;int count 0;for (int i 0; i < s.length &&a…...
vue3使用is动态切换组件报错Vue received a Component which was made a reactive object.
vue3使用is动态切换组件,activeComponent用ref定义报错 Vue received a Component which was made a reactive object. This can lead to unnecessary performance overhead, and should be avoided by marking the component with markRaw or using shallowRef ins…...
React16源码: React中LegacyContext的源码实现
LegacyContext 老的 contextAPI 也就是我们使用 childContextTypes 这种声明方式来从父节点为它的子树提供 context 内容的这么一种方式遗留的contextAPI 在 react 17 被彻底移除了,就无法使用了那么为什么要彻底移除这个contextAPI的使用方式呢?因为它…...
Gin 框架之jwt 介绍与基本使用
文章目录 一.JWT 介绍二.JWT认证与session认证的区别2.1 基于session认证流程图2.2 基于jwt认证流程图 三. JWT 的构成3.1 header : 头部3.2 payload : 负载3.2.1 标准中注册的声明 (建议但不强制使用)3.2.2 公共的声明3.2.3 私有的声明3.2.4 定义一个payload 3.3 signatrue : …...
解锁 AI 新用法:2026 普通人办事效率翻倍实战指南
2026 年 5 月 22 日,国产 AI 大模型周调用量连续两周领跑全球,智能体(Agent)技术从概念落地为全民工具,AI 正从 “科技圈热词” 彻底变成普通人的 “效率外挂”。当下,文心一言 5.1、DeepSeek V4 等国产模型…...
用Python手把手复现NRBO优化算法:从数学公式到完整代码的保姆级教程
用Python手把手复现NRBO优化算法:从数学公式到完整代码的保姆级教程 优化算法在工程和科学计算中扮演着关键角色,而牛顿-拉弗森优化算法(NRBO)作为最新提出的智能优化方法,凭借其高效的收敛性能引起了广泛关注。本文将彻底拆解NRBO的核心机制…...
泳装电商运营——AI驱动增长新引擎
泳装电商运营——AI驱动增长新引擎泳装旺季营销攻略:如何用AI工具实现销量翻倍?泳装行业的季节性特征明显,旺季不旺是很多商家的痛点。如何在短短几个月的销售窗口期内最大化产出?北京先智先行科技有限公司的一站式AI营销解决方案…...
大规模集群中的ksync:性能测试与资源占用优化策略
大规模集群中的ksync:性能测试与资源占用优化策略 【免费下载链接】ksync Sync files between your local system and a kubernetes cluster. 项目地址: https://gitcode.com/gh_mirrors/ks/ksync 在当今云原生开发环境中,Kubernetes文件同步工具…...
C251编译器变量分配与内存空间解析
1. C251编译器变量分配问题解析最近在Keil C251开发环境中遇到一个有趣的现象:编译器似乎将部分变量分配到了特殊功能寄存器(SFR)的内存空间。查看链接器生成的MAP文件时,发现如下信息:0000DDH 0000EAH 00000EH BYTE UNIT EDATA …...
2026年十家小程序开发公司榜单及全面解读
数字经济全行业渗透的当下,权威的小程序开发服务商排名,早已成为企业筛选技术合作方的核心参考坐标。市面上服务商定位差异大、水平参差不齐,企业如何才能找到技术实力过硬、同时匹配自身成本预期的合作方?本文结合2024-2025年行业…...
GEO获客工具如何选择?
随着AI智能搜索全面普及,越来越多的企业开始关注GEO获客工具。面对市面上涌现的各类产品,如何理性、客观地做出选择?本文从技术适配性、操作落地性、数据透明度三个维度,结合惠搜GEO获客系统的实际设计逻辑,提供一套可…...
2026年,写给所有还在迷茫的技术人:你的坚持终将闪耀
站在2026年的节点回望,整个互联网行业的寒潮似乎还没完全退去,AI大模型重构业务逻辑的浪潮又拍在了每个技术人的岸边。尤其是对千万软件测试从业者来说,这种迷茫感来得更加具体:手工测试岗位不断被自动化脚本挤压,纯功…...
WireUI颜色选择器和日期选择器:提升用户体验的利器 [特殊字符][特殊字符]
WireUI颜色选择器和日期选择器:提升用户体验的利器 🎨📅 【免费下载链接】wireui TallStack UI components 项目地址: https://gitcode.com/gh_mirrors/wi/wireui WireUI颜色选择器和日期选择器是Laravel Livewire应用中提升用户体验的…...
源代码论文分享|社区养老服务平台的设计与实现!
有些毕业设计题目,听起来不是特别“炫”,但真的很适合做,也很容易写出实际意义。 比如这次分享的这个项目:社区养老服务平台的设计与实现。 现在社区养老、居家养老、智慧养老这些方向本身就很有现实背景,老师看到这…...
