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

13 Web全栈 pnpm

什么是pnpm?

可以理解成performant npm缩写
速度快、节省磁盘空间的软件包管理器

特点

  1. 快速- pnpm比其他包管理器快2倍
  2. 高效- node_modules中的文件链接自特定的内容寻址存储库
  3. 支持monorepos- 内置支持单仓多包
  4. 严格- pnpm默认创建了一个非平铺的node_modules 因此代码无法访问任意包

哪些公司在用?

包括vue在内的很多或开源项目的包管理工具都切换到了pnpm

硬链接和软连接的概念

硬链接

是电脑文件系统中的多个文件平等的共享同一个文件存储单元
删除一个文件名后,还可以用其他名字继续访问该文件

软件连(符号链接)

是一类特殊的文件
包含一条以绝对路径或相对路径的形式指向其他文件或者目录的引用
桌面快捷方式

在这里插入图片描述

建立硬链接

ln source target

建立软连接

ln -s source target 

pnpm 到底做了什么 ?

当使用npm 或yarn时, 如果你又100个项目,并且所有项目都有一个相同的依赖包,那么,你的硬盘上就需要保存100份该相同依赖包的副本
如果你是pnpm 依赖包将被放在一个统一的位置,因此:

  • 如果你对同一依赖包使用相同的版本,那么磁盘上只有这个依赖包的一份文件
  • 如果你对同一依赖包需要使用不同版本,则仅有版本之间不同的文件或被存储起来
  • 所有文件都保存在硬盘上的统一位置。当安装软件包时,其包含的所有文件都会硬链接到此位置,而不会占用额外的硬盘空间。这让你可以在项目之间方便的共享相同版本的依赖包

在这里插入图片描述

pnpm创建非扁平的node_modules目录

当使用npm或yarn Classic安装依赖包时,所有软件包都将被提升到node_modules的根目录下。其结果是,源码可以访问本不属于当前项目所设定的依赖包

在这里插入图片描述

安装

npm i -g pnpm

与npm等价命令对照表
在这里插入图片描述

pnpm的存储store

在pnpm7.0之前,统一的存储位置是~/.pnpm-sttore中的
在pnpm7.0之后。在macOS上~/Library/pnpm/store

pnpm store path 

另外一个非常重要的命令prune(清减)

pnpm store prune
http://www.lryc.cn/news/131194.html

相关文章:

  • 回归预测 | MATLAB实现CSO-BP布谷鸟优化算法优化BP神经网络多输入单输出回归预测(多指标,多图)
  • JavaScript中的事件冒泡和事件捕获机制
  • 秋招面经——结合各方面试经验
  • Python random模块用法整理
  • 【Redis从头学-5】Redis中的List数据类型实战场景之天猫热销榜单
  • 基于Python的HTTP代理爬虫开发初探
  • 时序预测 | MATLAB实现WOA-CNN-LSTM鲸鱼算法优化卷积长短期记忆神经网络时间序列预测
  • 每日一题之二进制中1的个数
  • 8.17校招 内推 面经
  • VScode搭建Opencv(C++开发环境)
  • Redis高可用:哨兵机制(Redis Sentinel)详解
  • Hadoop小结(上)
  • ORA-600 ksuloget2 恢复----惜分飞
  • NLP的tokenization
  • 【宝藏系列】一文讲透C语言数组与指针的关系
  • Jenkins+Jmeter集成自动化接口测试并通过邮件发送测试报告
  • clickhouse入门
  • 中间件: ElasticSearch的安装与部署
  • LabVIEW模拟化学反应器的工作
  • Python基础语法入门(第二十三天)——正则表达式
  • 山西电力市场日前价格预测【2023-08-20】
  • C++中function,bind,lambda
  • 跟着美团学设计模式(感处)
  • 2023/8/19 小红书 Java 后台开发面经
  • 基于traccar快捷搭建gps轨迹应用
  • 【深度学习-图像识别】使用fastai对Caltech101数据集进行图像多分类(50行以内的代码就可达到很高准确率)
  • Debian10: 安装nut服务器(UPS)
  • 神经网络基础-神经网络补充概念-47-动量梯度下降法
  • C++11并发与多线程笔记(13) 补充知识、线程池浅谈、数量谈、总结
  • python高级基础