首页 > 其他分享 >pnpm 之降本增效

pnpm 之降本增效

时间:2023-04-07 16:45:21浏览次数:57  
标签:npm 依赖 aaa js 降本增效 pnpm 链接

作者:京东科技 于振京

受众简介

  • 前端研发工程师

还在为npm i安装大量依赖等待时间较长,npm扁平化node_modules依赖版本冲突在苦恼吗,不用苦恼pnpm为你保驾护航

  • 主要影响:安装依赖包的过程,假如使用的是npm install会根据package-lock.json进行软件包的安装,如果没有package-lock.json会根据package.json进行生成并对安装的依赖包扁平化处理,安装依赖包的时长由两个因素导致:
    1.package.json依赖包的量
    2.网速

  • 运维工程师

前端服务器由于部署工程较多,依赖包占用磁盘空间太大,不够用怎么办,还在花钱申请扩容吗,使用pnpm解决你的问题

主要影响:构建前端工程时jenkin任务一般会清除服务器的node_modules然后重新安装依赖,避免构建最新分支代码缺少依赖,另外一台服务器可能会部署很多前端工程,这样就会存在不同工程中安装了相同的依赖浪费服务器磁盘空间

没用pnpm时

我们使用以下几种工具管理依赖包

  • npm:nodejs自带工具,万物之主它的诞生给前端带来了春天

  • npx:npm同根同源,区别在于npm将依赖安装在本地,而npx避免了本地安装,直接对依赖包寻址执行

  • nrm:npm的镜像源管理工具,使用它可以快速切换npm

  • cnpm:淘宝镜像包管理工具

  • yarn:facebook推出的包管理工具,曾风靡一时

由于本章的主角是pnpm以上工具不做详细介绍,但以上包管理工具都有以下几个问题

  1. 安装包耗时较长,虽yarn做了下载优化和缓存,但与pnpm相比还是略逊一些

  2. 占用存储空间较大,当开发机或服务器前端工程较多时,工程越多冗余包就会越多

  3. 扁平化处理,npm v3之后引入了扁平化机制,解决地域依赖问题,但又带来了以下几个问题
    -- 依赖结构的不确定性
    -- 扁平化算法本身复杂性很高,耗时较长
    -- 项目中仍然可以非法访问没有声明过依赖的包 (幽灵依赖)

用了pnpm后

我们会得到以下几个buff加持

  • 快速:官网解释:比其他包管理模块快2倍

  • 高效:通过软硬链接寻址存储库,已达到节省磁盘的目的

  • 严格:pnpm默认创建了一个非平铺的node_modules,因此避免了相同插件不同版本引用不对称的问题,此设计完美解决了地域依赖幽灵依赖

认识软硬链接

对于pnpm为什么能达到【快速】和【高效】,就需要认识下软链接硬链接

  • 硬链接

电脑文件系统中的多个文件共享一个文件存储单元
window: mklink /H aaa_hard.js aaa.js
macos: ln aaa.js aaa_hard.js

  • 软链接

以绝对或者相对路径的形式指向其他文件目录的引用
window: mklink aaa_soft.js aaa.js
macos: ln -s aaa.js aaa_soft.js

在执行pnpm installpnpm add <pkg>命令时,PNPM会自动使用硬链接、软链接的方式管理依赖包

npm与pnpm命令对比

pnpm官网:https://pnpm.io/zh/

收益

image.png

上图是同一个工程使用npm和pnpm所需时间比较,npm耗时179.612秒而pnpm只需要27.3

标签:npm,依赖,aaa,js,降本增效,pnpm,链接
From: https://www.cnblogs.com/Jcloud/p/17295377.html

相关文章

  • 借降本增效之名,探索开闭原则架构设计
    作者:京东科技 胡灿海引语在我们的研发生产活动中,经常会遇到如下类似的疑惑:业务和技术在公司组织活动中,究竟应该各扮演什么样的角色?技术的目的是什么?研发生产活动中,如何提高生产事故发生的下限?如何充分提高isv或者外协人员价值最大化?《人月神话》说优秀程序员是普通程序员研发效率1......
  • pnpm
    安装与升级npminstall-gpnpmpnpmadd-gpnpmpnpmCLI npm命令pnpm等效npminstallpnpminstallnpmi<pkg>[pnpmadd<pkg>]npmrun<cmd>[pnpm<cmd>] 安装软件包及其依赖的任何软件包。默认情况下,任何新软件包都安装为生产依赖项。pnpmipnpmi......
  • 企业降本增效法宝之小程序营销模板
    近年来,小程序作为一种全新的应用形态,受到了人们的广泛关注。由于其轻量级、易传播、低成本等特点,博得了越来越多的企业和开发者的青睐。其中,小程序营销模版 作为小程序应......
  • 一秒读懂npm、 yarn 和 pnpm
      npm和yarn的缺点:1.npm1 和npm2 嵌套结构       问题:   依赖层级太深,会导致文件路径过长的问题,尤其在window系统下。  大量重......
  • nvm命令和pnpm安装
    nvm管理node版本切换、安装、查看pnpm的安装和使用(全网最详细)......
  • VSCode终端提示'pnpm'不是内部或外部命令,也不是可运行的程序或批处理文件
    每次在终端中执行一个新命令时总会遇到执行失败的问题,这次记录一下解决办法,省得每次都要去百度或者询问ChatGPT。1、检查是否已安装pnpm,如果尚未安装请先执行:npminstal......
  • 物流成本总是超标?一招教你降本增效!
    先来看一个数据,中国仓储物流管理指标与世界标杆数据对比第三方物流比例:中国是19%,世界标杆国家日本是80%;物流成本占GDP比例:中国为14.6%,标杆国家美国是7.2%。而且一般来说物流......
  • pnpm安装相关内容
    npm全局安装:npminstallpnpm-g 设置源//查看源pnpmconfiggetregistry//切换淘宝源pnpmconfigsetregistryhttps://registry.npmmirror.com/安装如......
  • 安装node & pnpm
    安装node和npm获取安装包wgethttps://nodejs.org/dist/latest-v18.x/node-v18.15.0-linux-x64.tar.xz解压tar-xvfnode-v18.5.0-linux-x64.tar.xz创建软连......
  • 2023.03.14 - pnpm的基本使用
    安装npminstall-gpnpm基本操作新增包pnpmaddxxx删除包pnpmremovexxx运行项目pnpmxxx筛检硬连接库pnpmstoreprune切换源......