安装 yarn、pnpm、功能比较
安装 yarn
官网:https://classic.yarnpkg.com/
快速、可靠和安全的依赖性管理。
Yarn是您代码的软件包管理器。它允许您使用和共享(例如JavaScript)与来自世界各地的其他开发人员一起编写代码。Yarn是一个新的快速安全可信赖的可以替代 NPM 的依赖管理工具。Yarn 一种取代 npm 的 Node的模块管理器,yarn 同样是一个从 npm 注册源获取模块的工具。
Yarn允许您使用其他开发人员的解决方案来解决不同的问题,使您更容易开发软件。
超快:Yarn缓存了它下载的每个软件包,因此它永远不需要再下载它。它还并行化操作,以最大限度地提高资源利用率,因此安装时间比以往任何时候都快。
超级安全:Yarn在执行代码之前使用校验和来验证每个已安装的软件包的完整性。
超级可靠:使用详细但简洁的锁文件格式和确定性安装算法,Yarn能够保证在一个系统上工作的安装在任何其他系统上的工作方式完全相同。
安装 yarn
npm install yarn -g
创建软连接
ln -s /usr/local/nodejs/bin/yarn /usr/local/bin/yarn
ln -s /usr/local/nodejs/bin/yarnpkg /usr/local/bin/yarnpkg
查看版本
yarn -v
yarn 查看各种路径命令
### 查看 yarn 安装包的位置
yarn global dir
/usr/local/share/.config/yarn/global。如果使用yarn global add xxx安装文件包,默认位置。
### 查看 yarn 安装包 bin 位置
yarn global bin
/usr/local/bin。如果使用yarn global add xxx安装文件包 bin 默认位置。
### 看 yarn 全局 cache 位置
yarn cache dir
/usr/local/share/.cache/yarn/v6。
### 看 yarn 镜像源
yarn config get registry
### 设置 yarn 镜像源
yarn config set registry https://registry.yarnpkg.com
卸载 yarn
yarn 全局配置文件,默认在/usr/local/share/.yarnrc,或者/root/.yarnrc
npm uninstall yarn -grm -f /usr/local/bin/yarn
rm -f /usr/local/bin/yarnpkg
rm -f /usr/local/bin/create-vite
rm -f /usr/local/bin/cva
rm -f /usr/local/share/.yarnrcrm -f /root/.yarnrc
rm -rf /root/.yarnrm -rf /usr/local/share/.config/yarn
rm -rf /usr/local/share/.cache/yarnrm -rf /usr/local/nodejs/lib/node_modules/corepack/shims/yarn
rm -rf /usr/local/nodejs/lib/node_modules/corepack/shims/nodewin/yarn
删除所有包含 yarn 的文件及目录
find /root -name yarn* | xargs rm -rf
find /usr/local -name yarn* | xargs rm -rf
yarn 常用命令
yarn add:添加一个软件包以在您当前软件包中使用。
yarn init:初始化软件包的开发。
yarn install:安装package.json文件中定义的所有依赖项。
yarn publish:向软件包管理器发布软件包。
yarn remove:从当前软件包中删除一个未使用的软件包。
安装 pnpm
快速的,节省磁盘空间的包管理工具
当使用 npm 时,如果你有 100 个项目,并且所有项目都有一个相同的依赖包,那么, 你在硬盘上就需要保存 100 份该相同依赖包的副本。然而,如果是使用 pnpm,依赖包将被 存放在一个统一的位置,因此:
如果你对同一依赖包需要使用不同的版本,则仅有 版本之间不同的文件会被存储起来。例如,如果某个依赖包包含 100 个文件,其发布了一个新 版本,并且新版本中只有一个文件有修改,则 pnpm update 只需要添加一个 新文件到存储中,而不会因为一个文件的修改而保存依赖包的 所有文件。
所有文件都保存在硬盘上的统一的位置。当安装软件包时, 其包含的所有文件都会硬链接自此位置,而不会占用 额外的硬盘空间。这让你可以在项目之间方便地共享相同版本的 依赖包。
最终结果就是以项目和依赖包的比例来看,节省了大量的硬盘空间, 并且安装速度也大大提高了!
快速:pnpm is up to 2x faster than npm
高效:node_modules 中的文件为复制或链接自特定的内容寻址存储库
支持 monorepos:pnpm 内置支持单仓多包
严格:pnpm 默认创建了一个非平铺的 node_modules,因此代码无法访问任意包
安装
通过 npm 安装 pnpm
npm install -g pnpm
或
npm install -g @pnpm/exe
Homebrew 安装 pnpm
如果你已经安装了 Homebrew 软件包管理器,则可以使用如下命令赖安装 pnpm:
brew install pnpm
Scoop 安装 pnpm
如果你已经安装了 Scoop,就可以通过一下命令安装 pnpm:
scoop install nodejs-lts pnpm
创建软链接和硬链接
通过 ln -s 创建一个软链接,通过 ln 可以创建一个硬链接。
ln -s /usr/local/nodejs/bin/pnpm /usr/local/bin/pnpm
ln -s /usr/local/nodejs/bin/pnpx /usr/local/bin/pnpx
他们的区别有以下几点:
软链接可理解为指向源文件的指针,它是单独的一个文件,仅仅只有几个字节,它拥有独立的 inode
硬链接与源文件同时指向一个物理地址,它与源文件共享存储数据,它俩拥有相同的 inode
查看版本
pnpm -v或者
pnpm --version
pnpm 常用命令
# 初始化项目,安装项目极其依赖
pnpm install
pnpm i# 安装包, 默认情况下,任何新软件包都安装为生产依赖项,写入dependencies
pnpm add packName
pnpm add packName -S# 安装包,安装为开发依赖项,写入 devDependencies
pnpm add packName -D# 安装包,全局安装
pnpm add packName -g# 移除项目,参数要与安装的时候相同
pnpm remove packName
卸载 pnpm
npm uninstall pnpm -g
查看所有包含 pnpm 的遗留文件
find /root -name pnpm*
find /usr/local -name pnpm*
查看所有包含 pnpx 的遗留文件
find /root -name pnpx*
find /usr/local -name pnpx*
删除所有包含 pnpm 的文件及目录
find /root -name pnpm* | xargs rm -rf
find /usr/local -name pnpm* | xargs rm -rf
删除所有包含 pnpx 的文件及目录
find /root -name pnpx* | xargs rm -rf
find /usr/local -name pnpx* | xargs rm -rf
也可以单独删除:
rm -f /usr/local/bin/pnpm
rm -f /usr/local/bin/pnpxrm -f /root/.cache/pnpm
rm -f /root/.local/share/pnpmrm -rf /usr/local/nodejs/lib/node_modules/corepack/shims/pnpm
rm -rf /usr/local/nodejs/lib/node_modules/corepack/shims/pnpm.cmd
rm -rf /usr/local/nodejs/lib/node_modules/corepack/shims/pnpm.ps1rm -rf /usr/local/nodejs/lib/node_modules/corepack/shims/pnpx
rm -rf /usr/local/nodejs/lib/node_modules/corepack/shims/pnpx.cmd
rm -rf /usr/local/nodejs/lib/node_modules/corepack/shims/pnpx.ps1rm -rf /usr/local/nodejs/lib/node_modules/corepack/shims/nodewin/pnpm
rm -rf /usr/local/nodejs/lib/node_modules/corepack/shims/nodewin/pnpm.cmd
rm -rf /usr/local/nodejs/lib/node_modules/corepack/shims/nodewin/pnpm.ps1rm -rf /usr/local/nodejs/lib/node_modules/corepack/shims/nodewin/pnpx
rm -rf /usr/local/nodejs/lib/node_modules/corepack/shims/nodewin/pnpx.cmd
rm -rf /usr/local/nodejs/lib/node_modules/corepack/shims/nodewin/pnpx.ps1
兼容性
以下列表列出了以往的 pnpm 版本和对应支持的 Node.js 版本。
Node.js | pnpm 5 | pnpm 6 | pnpm 7 | pnpm 8 |
---|---|---|---|---|
Node.js 12 | ✔️ | ✔️ | ❌ | ❌ |
Node.js 14 | ✔️ | ✔️ | ✔️ | ❌ |
Node.js 16 | ?️ | ✔️ | ✔️ | ✔️ |
Node.js 18 | ?️ | ✔️ | ✔️ | ✔️ |
Node.js 20 | ?️ | ?️ | ✔️ | ✔️ |
功能比较
功能 | pnpm | Yarn | npm |
---|---|---|---|
工作空间支持(monorepo) | ✔️ | ✔️ | ✔️ |
有锁文件 | ✔️ - pnpm-lock.yaml | ✔️ - yarn.lock | ✔️ - package-lock.json |
隔离的 node_modules | ✔️ - 默认 | ✔️ | ✔️ |
提升的 node_modules | ✔️ | ✔️ | ✔️ - 默认 |
管理 Node.js 版本 | ✔️ | ❌ | ❌ |
自动安装 peers | ✔️ | ❌ | ✔️ |
Plug’n’Play | ✔️ | ✔️ - 默认 | ❌ |
零安装 | ❌ | ✔️ | ❌ |
修补依赖项 | ✔️ | ✔️ | ❌ |
支持覆盖 | ✔️ | ✔️ - 通过 resolutions | ✔️ |
内容可寻址存储 | ✔️ | ❌ | ❌ |
动态包执行 | ✔️ - 通过 pnpm dlx | ✔️ - 通过 yarn dlx | ✔️ - 通过 npx |
辅助缓存 | ✔️ | ❌ | ❌ |
列出许可证 | ✔️ - 通过 pnpm licenses list | ✔️ - 通过插件 | ❌ |
相关文章:
安装 yarn、pnpm、功能比较
安装 yarn 官网:https://classic.yarnpkg.com/ 快速、可靠和安全的依赖性管理。 Yarn是您代码的软件包管理器。它允许您使用和共享(例如JavaScript)与来自世界各地的其他开发人员一起编写代码。Yarn是一个新的快速安全可信赖的可以替代 NP…...
计算机专业个人简历范文(8篇)
HR浏览一份简历也就25秒左右,如果你连「好简历」都没有,怎么能找到好工作呢? 如果你不懂得如何在简历上展示自己,或者觉得怎么改简历都不出彩,那请你一定仔细读完。 互联网运营个人简历范文> 男 22 本科 AI简历…...
几个实用网站
论文短语:https://www.phrasebank.manchester.ac.uk/ 翻译:https://www.deepl.com/en/translator 润色:https://quillbot.com/ 榜单:www.paperwithcode.com ****NLP民工的乐园: 几乎最全的中文NLP资源库:****https…...
Pycharm 切换interpreter---python的环境和第三方库问题
这篇回答两个问题: 1.为什么在 pycharm中打开新的project,切换interpreter 之后发现自己之前装的库消失了? 2.为什么 interpreter 切换到python3.8了, terminal 还是在 3.9?? 问题的关键:搞懂什…...
TP-LINK 路由器忘记密码 - 恢复出厂设置
TP-LINK 路由器忘记密码 - 恢复出厂设置 1. 恢复出厂设置2. 创建管理员密码3. 上网设置4. 无线设置5. TP-LINK ID6. 网络状态References 1. 恢复出厂设置 在设备通电的情况下,按住路由器背面的 Reset 按钮直到所有指示灯同时亮起后松开。 2. 创建管理员密码 3. 上网…...
关闭 Elasticsearch 集群的安全性设置
关闭 Elasticsearch 集群的安全性设置,特别是如果您正在使用 X-Pack,涉及到修改 Elasticsearch 的配置。以下是一般步骤,但请注意,这可能会使您的 Elasticsearch 集群面临安全风险,因此建议仅在开发或测试环境中执行此…...
[技术分享]一招解决 MySQL 中 DDL 被阻塞的问题
爱可生开源社区. 爱可生开源社区,提供稳定的MySQL企业级开源工具及服务,每年1024开源一款优良组件,并持续运营维护。 背景 之前碰到客户咨询定位DDL阻塞的相关问题,整理了一下方法,如何解决DDL被阻塞的问题。下面,就这个问题,整理了一下思路: 怎么判断一个 DDL 是…...
Windows搭建Emby媒体库服务器,无公网IP远程访问本地影音文件
文章目录 1.前言2. Emby网站搭建2.1. Emby下载和安装2.2 Emby网页测试 3. 本地网页发布3.1 注册并安装cpolar内网穿透3.2 Cpolar云端设置3.3 Cpolar内网穿透本地设置 4.公网访问测试5.结语 1.前言 在现代五花八门的网络应用场景中,观看视频绝对是主力应用场景之一&…...
自动化测试系列 之 Python单元测试框架unittest
一、概述 什么是单元测试 单元测试是一种软件测试方法,是测试最小的可测试单元,通常是一个函数或一个方法。 在软件开发过程中,单元测试作为一项重要的测试方法被广泛应用。 为什么需要单元测试 单元测试是软件开发中重要的一环…...
C语言朴素算法
#include <stdio.h> #include <string.h>// 朴素算法,用于字符串匹配 void naiveMatch(char* text, char* pattern) {int textLength strlen(text); // 计算文本串长度int patternLength strlen(pattern); // 计算模式串长度for …...
【力扣题解】P501-二叉搜索树中的众数-Java题解
👨💻博客主页:花无缺 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 本文由 花无缺 原创 收录于专栏 【力扣题解】 文章目录 【力扣题解】P501-二叉搜索树中的众数-Java题解🌏题目描述💡题解…...
Wnmp本地部署结合内网穿透实现任意浏览器远程访问本地服务
最近,我发现了一个超级强大的人工智能学习网站。它以通俗易懂的方式呈现复杂的概念,而且内容风趣幽默。我觉得它对大家可能会有所帮助,所以我在此分享。点击这里跳转到网站。 文章目录 前言1.Wnmp下载安装2.Wnmp设置3.安装cpolar内网穿透3.1…...
深信服AF防火墙配置SSL VPN
防火墙版本:8.0.85 需提前确认防火墙是是否有SSL VPN的授权,确认授权用户数量 1、确认内外网接口划分 2、网络→SSL VPN,选择内外网接口地址 3、SSL VPN→用户管理→新增一个SSL VPN的用户 4、新增L3VPN资源,类型选择Other&…...
在Spring Cloud中使用Gateway 网关
我们在上述文章中介绍了相关Spring Cloud的五大核心组件,现在我们来了解一下关于Spring Cloud的网关,关于使用网关,我们同时也需要知道他在一个架构中起到的作用,并且,我们需要知道网关具体的相关功能,本篇…...
【Python】配置环境变量
Python配置Windows系统环境变量 打开电脑属性 ——> 高级系统设置 ——> 高级 ——> 环境变量 Python安装目录 D:\Program Files\Python39 winR打开运行,输入cmd打开命令窗口 python -V...
使用.Net nanoFramework 驱动ESP32的OLED显示屏
本文介绍如何使用.Net nanoFramework 驱动ESP32的OLED显示屏。我们将会从最基础的部分开始,逐步深入,让你能够理解并实现整个过程。无论你是初学者还是有一定经验的开发者,这篇文章都会对你有所帮助。 1. 硬件准备 1.1 ESP32开发板 这里我们…...
0基础学习VR全景平台篇第134篇:720VR全景,云台调整节点
相机、云台和脚架全套设备组装完成后需要进行调校才能开始拍摄。这一节,我们将主要介绍云台调整的两个内容:对中心靶、调三点一线。(后附调校原理) 云台部件名称 一、调节准备 (一)对于安装好的云台 1.检…...
扫地机器人地图与用户终端的同步
以下内容为本人的学习笔记,如需要转载,请声明原文链接 微信公众号「ENG八戒」https://mp.weixin.qq.com/s/APaJheSbgTW3jNssWsp5Ng 地图数据来源于机器人算法模块,一般通过SLAM算法完成建图的过程。 建图过程中,基础数据涉及到各…...
使用机器学习进行语法错误检测/纠正
@francescofranco_39234 一、说明 一般的学习,特别是深度学习,促进了自然语言处理。各种模型使人们能够执行机器翻译、文本摘要和情感分析——仅举几个用例。今天,我们将研究另一个流行的用途:我们将使用Gramformer构建一个用于机器学习语法错误检测和纠正的管道。 阅读本文…...
从0到1快速入门ETLCloud
一、ETLCloud的介绍 ETL是将业务系统的数据经过抽取(Extract)、清洗转换(Transform)之后加载(Load)到数据仓库的过程,目的是将企业中的分散、凌乱、标准不统一的数据整合到一起,为企…...
QT上位机开发(会员管理软件)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 前面我们学习了ini文件的解析办法,通过QSettings类就可以很轻松地访问ini文件里面的数据。除了ini文件之外,另外一种经常出…...
线性代数笔记3 1.1
学习视频: 2.2 矩阵运算(二)_哔哩哔哩_bilibili 包括内容: p10矩阵运算(二) p11特殊矩阵 p12逆矩阵(一) p13逆矩阵(二)...
2023年12月编程语言排行榜
TIOBE Index for December 2023 December Headline: C# on its way to become programming language of the year 2023 2023年12月的TIOBE指数:12月头条:c#将成为2023年最佳编程语言 Yes, I know, we have been here before. At the end of 2022, it looked like …...
Redis VS Memcached:选择哪个更适合您的应用?
目录 1、前言 2、概念简介 2.1 Redis 2.2 Memcached 3、数据模型 4、持久性 5、分布式能力 6、性能和扩展性 7、如何选择适合您引用的缓存系统 8、结语 1、前言 Redis和Memcached都是常见的内存缓存系统,用于提升应用程序的性能和可扩展性。它们都具有高…...
【HarmonyOS开发】共享包HAR和HSP的创建和使用以及三方库的发布
OpenHarmony提供了两种共享包,HAR(Harmony Archive)静态共享包,和HSP(Harmony Shared Package)动态共享包。 HAR与HSP都是为了实现代码和资源的共享,都可以包含代码、C库、资源和配置文件&…...
安装 Node.js、npm
安装 nodejs 安装Node.js的最简单的方法是通过软件包管理器。 Node.js官网:https://nodejs.org/en/download/ cd /usr/local/src/wget -c https://nodejs.org/dist/v18.16.0/node-v18.16.0-linux-x64.tar.xz xz -d node-v18.16.0-linux-x64.tar.xz tar -xf node…...
解决报错:找不到显卡
今天做实验碰到一个问题:torch找不到显卡: 打开任务管理器,独显直接没了,一度以为是要去修电脑了,突然想到上次做实验爆显存,屏蔽了gpu用cpu训练: import os os.environ["CUDA_DEVICE_OR…...
如何使用Node.js快速创建本地HTTP服务器并实现公网访问服务端
💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…...
【社交网络分析】课程考试复盘 + 相关资料补充
【社交网络分析】考试后复盘 相关资料补充 写在最前面论述1.描述Logistic回归模型构造损失函数的主要思想。它是如何把线性回归预测模型转化为二分类模型的。Logistic回归模型构造损失函数的主要思想Logistic回归如何将线性回归预测模型转化为二分类模型 2.社交网络分析中面临…...
算法——队列+宽搜(BFS)
队列这种数据结构大都服务于一个算法——宽搜(BFS)。宽搜还可以运用到二叉树、图、迷宫最短路径问题、拓扑排序等等 N叉数的层序遍历 N叉树的层序遍历 题目解析 给定一个 N 叉树,返回其节点值的_层序遍历_。(即从左到右&#…...
商丘电子商务网站建设/飓风seo刷排名软件
创建协程的方式主要有:launch()、async()、coroutineScope()、runBlocking() 。 launch() 创建一个异步协程(非阻塞),返回一个不带返回值的 job。 fun main(){GlobalScope.launch{// 默认 CorutineDispatcher 为 Dispatchers.Defaultdelay(1000) // 仅可用于协程,而非线…...
网站引入百度地图/网络推广怎么推广
一.管理输入和输出 在系统中利用普通用户执行命令’find /etc -name passwd’,由于普通用户权限问题,将会出现两种输出:正确输出和错误输出 因为student用户权限问题会有以下输出find: ‘/etc/pki/CA/private’: Permission denied ##没有进…...
建设网站公司/农村电商平台有哪些
前言 瞧不起Java的大概是因为: Java 被认为是一门“老”语言,过时了。事实上,Java 由于其稳定性和安全性,一直是企业级应用开发的首选语言。而且,Java 语言还在不断更新和发展,例如 Java 8 引入了很多新特…...
有人情味的网站/惠州seo计费管理
2021年已经到了复工期,给准备跳槽的大家整理了今年来最经典的面试真题100道,每个题目都有详细的解答,收集了java基础、RabbitMQ,微服务、MySQL数据库、Java并发、JVM,Redis、设计模式,Spring / Spring MVC&…...
网站优化要怎么做才会做到最佳/google关键词搜索量
delete FROM main_bussiness_cost1 where date is null; 不能用 date null; 转载于:https://www.cnblogs.com/wangjiale1024/p/10281526.html...
jmail官方网站/怎么创建自己的网址
消费者和企业总想“以少获多”,并且总会这样做;这也在无形中推动了我们的市场发展,为技术创新者创造了无限机会。在系统领域,“以少获多”往往意味着“高度集成”。将更多功能集中到一个芯片中可以降低成本,使解决方案…...