在使用前端工具时,yarn、npm都是大家常用的包管理器,但是如果有多个项目使用了同一个依赖的时候,就会在硬盘里保存相应的副本,一旦这个多个项目变得数字很大,那么这个硬盘空间也是会逐渐吓人的。

所以今天TJ君给大家分享一个可以快速节省磁盘空间的包管理工具,pnpm

pnpm的原理在于不会傻瓜式的无脑存储相应的副本,而是进行差异文件的比对,只会增加变化了的文件,相当于这些多个项目相同的部分都共享了一个版本的依赖。

这样的话,硬盘空间可以得到大量的缩减,同时加快了安装速度。

可以看一下作者的初衷概念图:

pnpm的主要特点有:

快速、高效、支持 monorepos、严格

快速,一般pnpm都可以提高2倍以上的速度;

高效,是指Node_modules 中的文件是从一个单一的可内容寻址的存储中链接过来的;

支持 monorepos,是因为pnpm 内置支持了单仓多包;

严格,是pnpm 默认创建了一个非平铺的 node_modules,因此代码无法访问任意包;

pnpm的安装方式有多种。

  • 使用独立脚本安装

    • 未预装 Node.js情况

在 POSIX 系统上,如果没有安装 Node.js,可以使用以下脚本安装 pnpm:

curl -fsSL https://get.pnpm.io/install.sh | sh -

如果没有安装 curl,也可以使用 wget,命令如下:

wget -qO- https://get.pnpm.io/install.sh | sh -

在 Windows 下(使用PowerShell)的安装命令:

iwr https://get.pnpm.io/install.ps1 -useb | iex

然后可以使用 pnpm env 命令来安装 Node.js。

  • 已预装 Node.js

在 Linux 或 macOS 下的安装命令:

curl -f https://get.pnpm.io/v6.16.js | node - add --global pnpm

在 Windows 下(使用PowerShell)下的安装命令:

Invoke-WebRequest 'https://get.pnpm.io/v6.16.js' -UseBasicParsing -o pnpm.js; node pnpm.js add --global pnpm; Remove-Item pnpm.js
  • 使用 HomeBrew安装

brew install pnpm
  • 使用 Scoop安装

scoop install nodejs-lts pnpm
  • 使用 Corepack安装 从 v16.13 开始,Node.js 发布了 Corepack 来管理包管理器,所只要执行这个命令就可以了:

corepack enable

同时,小伙伴可以自动检测当前的安装包是不是最新的:

corepack prepare pnpm@6.22.2 --activate
  • 通过 npm 安装

npm install -g pnpm
  • 通过 npx 安装

npx pnpm add -g pnpm

感兴趣的小伙伴,赶紧来试试吧:

点击下方卡片,关注公众号“TJ君

回复“pnpm2022”,获取仓库地址

我们将之前发过的各种项目及工具进行了整理,收录到了GitHub项目,欢迎各位小伙伴光临Star,地址如下:https://github.com/Wechat-TJ/TJ-WORLD-FORU

节省磁盘空间的新一代包管理工具PNPM相关推荐

  1. 新一代的 Python 包管理工具 -- PDM

    PDM 是一个新的 Python 的包管理器,也许你还未知晓它的存在,但实际上PDM 已经诞生两年,并在 2021 年发布 1.0 版本,目前最高的版本是 1.12.8. 在刚听到 PDM 时,我下意 ...

  2. 新一代 Python 包管理工具来了!

    作者:费弗里 来源:Python 大数据分析 " 阅读本文大概需要 4 分钟. " 1 简介 说起Python的包管理工具,大家第一时间想到的肯定是pip.conda等经典工具.但 ...

  3. pnpm 是更快的包管理工具

    pnpm 是快速的,节省磁盘空间的包管理工具.平常我们都是使用 yarn 或者 npm 等等,现在 pnpm 比替代品快 2 倍. 通过 npm 安装 npm install -g pnpm 通过 n ...

  4. 前端工程化-包管理工具npm-yarn-cnpm-pnpm详细介绍以及如何选择

    文章目录 包管理工具详解 npm包管理工具 1.代码共享的方案 2.npm包管理工具介绍 3.npm的配置文件 常见配置文件 常见配置文件属性 版本号的说明 4.npm install npm ins ...

  5. 包管理工具,npm、yarn、pnpm

    1.包管理工具概述 本门课程的前置知识:JavaScript.ES6.模块化.git 本门课程的所有代码均书写在 nodejs 环境中,不涉及浏览器环境 概念 模块(module) 通常以单个文件形式 ...

  6. 什么是log文件、jar文件、phar文件、Composer、包管理工具?

    log文件 log即日志,log文件就是日志文件,记录系统里进行的一些操作,也可以分析日志文件,查看系统里是否有反常行为,从而判断系统是否被入侵. jar文件 jar即Java ARchive,jav ...

  7. Yum包管理工具的20个常用命令

    什么是YUM? YUM(Yellowdog Updater Modified)是一个开源命令行,也是基于RPM(RedHat Package Manager)的Linux系统的基于图形的包管理工具.它 ...

  8. Python包管理工具小结

    此文已由作者张耕源授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 作为一名接触Python有一段时间的初学者,越来越体会到Python的方便之处,它使人能更 多的关注业务本身 ...

  9. 包管理工具-yum和dnf

    yum和dnf yum 常用命令 dnf dnf常用命令 两者区别 相信大家都知道yum和dnf是linux系统中的包管理工具,我在学习的时候就很困惑,为什么有的地方使用yum,有的地方又使用dnf呢 ...

最新文章

  1. 应用交付:从技术到服务
  2. Nacos源码BeatInfo
  3. mysql用supervisor管理_Supervisor使用详解
  4. php之time的用法,php中time()与$_SERVER[REQUEST_TIME]用法区别
  5. 数据结构之 栈 (Python 版)
  6. 数字集成电路设计之加法器
  7. netbean连接mysql数据库_Netbean 中jsp连接oracle数据库JDBC实例
  8. 一键DDOS防火墙安装程序
  9. JetChat-简仿微信聊天应用
  10. 【链表】找出直系亲属
  11. PHY以太网DP83848IVV/NOPB 工业温度、10/100-Mbps 以太网 PHY 收发器,支持 SNI 和 JTAG
  12. YOLOX升级 | 阿里巴巴提出YOLOX-PAI,1ms内精度无敌!
  13. “燕云十六将”之陈丽辉(11)
  14. ubuntu18.04+nvidia387+cuda9.0安装
  15. mac 更换jupyter的默认启动浏览器
  16. 数据库设计之area区域表改版后,数据库设计之区域表
  17. 关于eLTE,你不知道的事
  18. 视频加水印怎么加?两分钟教你如何视频加水印
  19. oracle导入导出版本规则,Oracle不同版本间的导入导出命令详解 - wangzhuoyan的专栏 - CSDN博......
  20. 夺神之权服务器维护,流放之路3月28日夺神之权停服更新详解

热门文章

  1. ActiveMQ入门教程(三) - ActiveMQ P2P版的HelloWorld
  2. 使用友盟的社会化组件,发新浪微博的 error:redirect_uri_mismatch的解决方法
  3. extjs 中iframe内存泄漏的问题
  4. Jakarta Commons:巧用类和组件1
  5. Sublime text 2/3 中 Package Control 的安装与使用方法
  6. Linux下运行java DES解密失败,报javax.crypto.BadPaddingException:Given final block not properly padded
  7. golang 实现 while 和 do……while 循环
  8. java Runtime.getRuntime().exec 获取反弹shell
  9. linux c 报错 multiple definition of ‘xxx’ 解决方法
  10. linux c socket ip地址 字符串 数字 转换 inet_addr inet_ntoa