位置: IT常识 - 正文

pnpm的基本原理及快速使用(pnpnpn的工作原理)

编辑:rootadmin
现在有不少项目都转向使用了pnpm,它能帮我们节约磁盘空间并提升包的安装速度,但是也没有带来很多使用习惯上的迁移,npm中的命令在pnpm中大多都是能用的,我们可以方便的切换到pnpm中进行开发。为何不尝试一下呢?本文就介绍了pnpm中基本的原理,很常用的命令,让你方便快速的了解并使用它。 ... 基本原理前置知识:软件链接与硬链接

推荐整理分享pnpm的基本原理及快速使用(pnpnpn的工作原理),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:pn的工作原理,pnp工作原理详解,pnpnpn的工作原理,详解pnp,pnp工作原理详解,pnp 原理,pnp工作原理详解,pnpnpn的工作原理,内容如对您有帮助,希望把文章链接给更多的朋友!

软链接(符号链接Symbolic link):是一类特殊的文件, 其包含有一条以绝对路径或者相对路径的形式指向其它文件或者目录的引用。在window快捷方式上和其功能类似。

硬链接:是计算机文件系统中的多个文件平等地共享同一个文件存储单元(如MFT条目、inode)。硬链接必须在同一个文件系统中;一般用户权限下的硬链接只能用于文件,不能用于目录,因为其父目录就有歧义了。

熟悉Linux的朋友就很容易就能区分理解这两个东西了。(mac同)创建的命令分别是:

# 创建硬链接$ ln target_file link_name# 创建软链接$ ln -s target_file link_name$ ln -s target_directory link_name

当然在windows中使用mklink也能够创建软链接和硬链接

# 创建硬链接mklink /H link_name target_file# 创建软链接mklink target_file link_name

创建非扁平化的 node_modules 文件夹pnpm的基本原理及快速使用(pnpnpn的工作原理)

这是官网的一张说明其非扁平化 node_modules的图,可能不是很明白,我们可以对比着npm会比较明白。分别使用npm和pnpm安装axios。

PS G:\npm_demo> npm install axiosadded 9 packages in 1sPS G:\pnpm_demo> pnpm add axiosPackages: +9+++++++++Packages are hard linked from the content-addressable store to the virtual store. Content-addressable store is at: G:\.pnpm-store\v3 Virtual store is at: node_modules/.pnpmProgress: resolved 9, reused 6, downloaded 3, added 9, donedependencies:+ axios 1.2.2Done in 2.8s

npm安装axios的时候,axios的依赖会放在和axios同一级,这样做的好处是,如果别的包也同样使用了这些依赖,就不用重新导入了。但是缺点是,我们在项目中也能直接去应用axios依赖导入的包。但我们自身的项目却是没有依赖那些包的。要是哪天移除了axios,那项目中可能就会出错了,也就是幽灵依赖。

切换node版本原理

在我们配置了系统环境变量之后,命令行中使用命令时,系统就会到配置的路径中去寻找是否有支持命令的软件,然后执行命令。

在安装pnpm的时候,它会在我们的环境变量中添加它自己文件夹的路径,比如在我电脑中它的路径是:C:\Users\Administrator\AppData\Local\pnpm,它的目录结构如下:

当我们使用pnpm切换node版本的时候,没有对应的版本它则会下载对应版本的node,然后在将其创建了链接(软链接)到pnpm的根目录中。就相当于当前环境变量中有了对应版本的node了。

快速使用安装

安装了node可以使用npm安装

npm install -g pnpm

没有也可以直接在powershell中使用命令进行安装

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

安装过程中,若权限足够它会在自动在系统中添加环境变量。

常用命令(基本与npm一致)npm 命令pnpm 等效npm installpnpm installnpm ipnpm addnpm runpnpm 或 pnpm run删除相关依赖pnpm remove -D # 删除开发环境 devDependencies 中的依赖项pnpm rm -P # 删除dependencies 中相关依赖项pnpm uninstall -g # 全局中删除pnpm prune # 移除没有在项目中使用的packages管理node版本pnpm env use --global lts # 安装lts版nodepnpm env use --global 18 # 安装v18版nodepnpm env use --global latest # 安装最新nodepnpm env remove --global 14.0.0 # 移除指定版本nodepnpm env list # 查看本地有的node版本pnpm env list --remote # 查看网络源可用的node版本其它命令pnpm create react-app my-apppnpm start # 别名 run start常用配置package.json{ // 指定你的软件能够运行的 Node 版本和 pnpm 版本 "engines": { "node": ">=10", "pnpm": ">=3" }, "pnpm": { // 忽略依赖问题的警告 "peerDependencyRules": { "ignoreMissing": ["@babel/*", "@eslint/*"] } }}参考源

https://pnpm.io/zh/

本文链接地址:https://www.jiuchutong.com/zhishi/310194.html 转载请保留说明!

上一篇:织梦DEDECMS调出指定文章所有图片的代码(织梦怎么调用当前栏目下的文章)

下一篇:第6章 分支语句和逻辑运算符

  • grisly manor2全部攻略(grisly manor攻略)(grisly manor 2)

    grisly manor2全部攻略(grisly manor攻略)(grisly manor 2)

  • 钉钉怎么设置不让别人看名片(钉钉怎么设置不自动打卡)

    钉钉怎么设置不让别人看名片(钉钉怎么设置不自动打卡)

  • 微信来电震动怎么设置(微信来电震动怎么关不了)

    微信来电震动怎么设置(微信来电震动怎么关不了)

  • 以管理员身份运行是什么意思(以管理员身份运行怎么关掉)

    以管理员身份运行是什么意思(以管理员身份运行怎么关掉)

  • 小米一元流量怎么恢复(小米一元流量怎么不能用了)

    小米一元流量怎么恢复(小米一元流量怎么不能用了)

  • 剪映怎么拍摄视频(剪映怎么拍摄视频暂停)

    剪映怎么拍摄视频(剪映怎么拍摄视频暂停)

  • 从黑名单拉出来后以前发的短信能收到吗(从黑名单拉出来后,通讯录找不到他)

    从黑名单拉出来后以前发的短信能收到吗(从黑名单拉出来后,通讯录找不到他)

  • 微信支付每次都要验证码怎么解决(微信支付每次都要点我知道了)

    微信支付每次都要验证码怎么解决(微信支付每次都要点我知道了)

  • ipad4可以用pencil吗(ipad4可以用电容笔吗)

    ipad4可以用pencil吗(ipad4可以用电容笔吗)

  • 微信收款码能随便给别人吗(微信收款码能随便给别人吗安全吗)

    微信收款码能随便给别人吗(微信收款码能随便给别人吗安全吗)

  • hp1106用什么硒鼓(惠普1106打印机硒鼓型号)

    hp1106用什么硒鼓(惠普1106打印机硒鼓型号)

  • 苹果突然没声音了怎么回事(苹果突然没声音显示耳机模式)

    苹果突然没声音了怎么回事(苹果突然没声音显示耳机模式)

  • 电网和送电线路有什么区别(电网输送的是直流电还是交流电)

    电网和送电线路有什么区别(电网输送的是直流电还是交流电)

  • 荣耀20s耳机怎么用(荣耀20耳机在哪里插)

    荣耀20s耳机怎么用(荣耀20耳机在哪里插)

  • 骚扰电话太多怎么拦截(骚扰电话太多怎么设置拦截)

    骚扰电话太多怎么拦截(骚扰电话太多怎么设置拦截)

  • unknown中文是什么意思(unknown的汉语意思)

    unknown中文是什么意思(unknown的汉语意思)

  • lr如何去紫边(acr去紫边)

    lr如何去紫边(acr去紫边)

  • 华为手机怎么查激活日期(华为手机怎么查定位)

    华为手机怎么查激活日期(华为手机怎么查定位)

  • 智慧团建登录密码是什么(智慧团建登录密码错误)

    智慧团建登录密码是什么(智慧团建登录密码错误)

  • 微博如何快速增加微博粉丝(微博如何快速增加经验值)

    微博如何快速增加微博粉丝(微博如何快速增加经验值)

  • 手机亲情号怎么取消(手机亲情号怎么取消成员)

    手机亲情号怎么取消(手机亲情号怎么取消成员)

  • 咸鱼收款什么时候到账(闲鱼收款几天到账)

    咸鱼收款什么时候到账(闲鱼收款几天到账)

  • java实现电子发票中的发票税号等信息识别的几种可用方案(java实现电子发票)

    java实现电子发票中的发票税号等信息识别的几种可用方案(java实现电子发票)

  • 帝国cms灵动标签里的序号如何实现(帝国cms灵动标签排除上一篇下一篇文章)

    帝国cms灵动标签里的序号如何实现(帝国cms灵动标签排除上一篇下一篇文章)

  • 个人所得税是什么费用
  • 0税率开票如何做账
  • 离职补偿金怎么做账
  • 自建的固定资产可以抵扣吗
  • 销售积分税务处理的特点
  • 承担客户装修费怎么入账
  • 运输企业桥票怎么做会计分录
  • 顾客退货补差价怎么做账?
  • 海关证需要年检吗
  • 应交税金成负数
  • 事业单位的出纳要承担的责任是什么
  • 合法票据的利息计算方法
  • 公司车辆计提是含税还是不含税?
  • 免抵税额为什么不能抵下期
  • 虚开进项税额转出会计分录
  • 营改增后如何纳税
  • 公司食堂买菜入什么科目
  • 降温费和取暖费标准
  • 利润分配需要缴纳企业所得税吗
  • 季度所得税可以不预缴吗
  • 增值税一般项目是指什么
  • 美元兑人民币分时走势图
  • 滞留海关发票是谁开
  • windows10如何开热点
  • 路由器怎么重置网络
  • 无形资产入股注意事项
  • 债券投资属于什么业务
  • 如何在电脑管家里把健康小程序提取出
  • 损益明细表计提企业所得税
  • 在laravel中,界面文件应该放在以下哪个路径下
  • 采购预算测算依据
  • php的了解
  • 波尔图葡萄牙语
  • c语言设计酒店管理系统
  • cookie set
  • 个体户分红需要申报吗
  • 辞退补偿金计算
  • 建筑施工企业适用什么会计制度
  • 增值税是如何计算的
  • 所得税费用是属于费用类吗
  • 出货后90天付款
  • 差旅费报销范围包括
  • 缴纳的工会经费现金流量表怎么记
  • 未开票收入申报有税务风险吗
  • 收到普票和专票对企业的纳税影响
  • 会计凭证借贷方哪个是收入
  • 转出未交增值税和未交增值税区别
  • 养老保险 退钱
  • 对于审核后的凭证可直接修改对吗
  • 对公账户存款利息分录
  • 哪些行业不适用作业法
  • 自产商品无偿赠送是否确认收入
  • 从公账提取备用金到个人账户怎么做会计分录
  • 什么情况会影响到征信
  • 工资薪金个人所得税扣除标准
  • 厂房拆了建住宅可以么
  • SQL Server Alert发送告警邮件少了的原因
  • mysql集群原理详解
  • 找回被删除的文件时第一步应该是什么
  • newmessage是什么软件
  • centos直接进入命令行
  • linux怎么下载安装腾讯Tim?
  • windows日历
  • windows8.1升级到windows10
  • Unity3D游戏开发标准教程
  • cocos2dx4.0入门
  • javascript的基本规范
  • 网页制作范例
  • vue解析md
  • javascript怎么用
  • unity怎么删除导入的包
  • 安卓回调接口怎么写
  • Python的二维列表存储
  • python爬虫有道翻译
  • 个体 税务登记
  • 个税app如何更改扣缴义务人
  • 海南省税务局长
  • 四川税务app下载安装
  • 工会经费收支办法2022新政策
  • 大修费属于什么费用
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设