pnpm9.5.0(catalog协议)

news2024/9/20 22:57:22

catalog(目录协议)

目录是工作区功能,用于将依赖版本范围定义为可重用常量,目录中定义的常量可以在package.json中使用,
结合 pnpm-workspace.yaml使用

  • 定义pnpm-workspace.yaml
    packages:定义多仓库
    在这里插入图片描述
packages:
  - 'packages/*'

catalog:
  chalk: ^4.1.2

catalogs:
  react16:
    react: ^16.7.0
    react-dom: ^16.7.0
  react17:
    react: ^17.10.0
    react-dom: ^17.10.0

这里有两种方式定义 catalog

  • catalog

普通定义,一一对应,默认值为default

// pnpm-workspace.yaml
catalog:
  chalk: ^4.1.2
// packages/app/package.json
{
  "name": "app",
  "dependencies": {
    "chalk": "catalog:"
  }
}
  • catalogs

具名,将多个catalog整合成一个catalogs

// pnpm-workspace.yaml
catalogs:
  react16:
    react: ^16.7.0
    react-dom: ^16.7.0
  react17:
    react: ^17.10.0
    react-dom: ^17.10.0
// packages/app/package.json
{
  "name": "app",
  "dependencies": {
    "react": "catalog:react18",
    "react-dom": "catalog:react18"
  }
}

优点

monorepo或多包存储库中,许多包是有相同依赖的。目录减少了 package.json文件时的重复,并提供以下好处

  • 维护唯一版本

工作区中最好只有一个版本的依赖项。目录使维护更容易。重复的依赖项可能会在运行时发生冲突并导致错误。

  • 升级简单

升级依赖时,只需要编辑目录,而不用修改各个包中的package.json

  • 更少的合并冲突

由于依赖项变动不需要编辑package.json,这类文件导致的冲突将最小化

运行与发布

在运行时,catalog协议会被删除,发布时会被替换成对应版本

注意事项

使用pnpm update并不能更新pnpm-workspace.yaml依赖项,需要手动选择。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1922181.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

CSS【详解】层叠 z-index (含 z-index 的层叠规则,不同样式的层叠效果)

仅对已定位的元素( position:relative,position:absolute,position:fixed )有效,默认值为0,可以为负值。 z-index 的层叠规则 z-index 值从小到大层叠 兄弟元素 z-index 值相同时,后面的元素在…

微信小程序毕业设计-高校校园交友系统项目开发实战(附源码+论文)

大家好!我是程序猿老A,感谢您阅读本文,欢迎一键三连哦。 💞当前专栏:微信小程序毕业设计 精彩专栏推荐👇🏻👇🏻👇🏻 🎀 Python毕业设计…

react-类组件2

setState 在开发中不能直接通过修改state的值来使界面发生变化,必须通过setState来修改才能使页面发生变化。 使用setState修改时,两次的修改结果会合并,在合并时会比较参数的变化,如果发生变化会覆盖原来的,然后再执…

一文读懂什么是GPU算力平台!

随着高性能计算(HPC)和人工智能(AI)技术飞速发展,GPU算力平台作为这些技术的重要支撑,正逐步成为各行各业数字化转型的核心驱动力。尚云sunclouds将带您深入了解GPU算力平台的基本概念、工作原理、优势以及…

阿里ChatSDK使用,开箱即用聊天框

介绍: 效果:智能助理 ChatSDK,是在ChatUI的基础上,结合阿里云智能客服的最佳实践,沉淀和总结出来的一个开箱即用的,可快速搭建智能对话机器人的框架。它简单易上手,通过简单的配置就能搭建出对…

【Linux网络】数据链路层【下】{MAC/MTU/ARP/ICMP/NAT/PING/代理服务器原理}

文章目录 1.逐步深入数据链路层1.1MAC帧1.2由集线器到交换机1.3认识MTU 2.ARP 地址解析协议/RARP逆地址解析协议3.DNS(Domain Name System)域名从输入url后到能看到网页 发生了什么【典中典】 4.ICMP协议:一个网络层协议有了TCP,为什么还要用ICMPICMP协议…

关于电脑的硬盘,你知道那些?

硬盘是一种主要用于存储数据的非易失性存储设备。它通过磁性存储技术在旋转的磁盘上读取和写入数据。硬盘通常安装在计算机内部,但也有外置硬盘供外部使用。 磁盘是什么?与硬盘有什么区别? 磁盘是一个更泛化的术语,可以指代任何使…

黑马程序员2024最新SpringCloud微服务开发与实战 个人学习心得、踩坑、与bug记录 Day4

你好,我是Qiuner. 为帮助别人少走弯路和记录自己编程学习过程而写博客 这是我的 github https://github.com/Qiuner ⭐️ gitee https://gitee.com/Qiuner 🌹 如果本篇文章帮到了你 不妨点个赞吧~ 我会很高兴的 😄 (^ ~ ^) 想看更多 那就点个关注吧 我会…

DWG文件发布至IIS后无法下载和预览解决办法

问题描述 DWG文件发布至IIS后无法下载和预览 原因分析: iis里面需要添加扩展 解决方案: 在服务器端IS属性的HTTP头下的MIME内容中添加扩展名“.dwg” MIME类型填入application/acad

分布式锁理解

介绍分布式锁,我觉得从项目的背景入手把 在伙伴匹配系统中,我创建了一个定时任务,做为缓存预热的手段 这个具体原因在Redis-CSDN博客 接下来切入正题: 想象每个服务器都有一个定时任务,都要对数据库或者缓存进行操…

C语言作业5(学生管理系统C语言)

成学生管理系统 1> 使用菜单完成 2> 有学生的信息录入功能:输入学生个数,并将学生的姓名、分数录入 3> 查看学生信息:输出所有学生姓名以及对应的分数 4> 求出学习最好的学生信息:求最大值 5> 按姓名将所有学…

Hyper-V 性能监控工具

虚拟化是任何组织网络管理战略不可或缺的一部分,对于帮助提高网络效率和资源可用性至关重要。采用虚拟基础架构具有多种好处,例如最大限度地减少停机时间、降低运营成本和提高生产力。 在所有虚拟服务器中,Microsoft Hyper-V因其多功能性和可…

亚马逊测评如何实现不同账户拥有独立运行环境,提高成功率

测评之所以被认为是最快速有效的推广方式,是因为它能够迅速影响多个关键因素。通过测评,您能够快速提升关键词的转化率,从而获得更好的搜索排名。优质的评价有助于增加产品的权重和转化率,进一步提升排名。同时,增加的…

在Windows环境下安装pycharm

Python环境搭建 第一步下载安装python 等待安装完成 验证python是否安装成功 Python开发工具安装部署 JetBrains: Essential tools for software developers and teams PyCharm: the Python IDE for data science and web development 下载社区版本的PyCharm 双击打开下载好的…

花几千上万学习Java,真没必要!(一)

1、主流的操作系统: 目前主流的PC端操作系统包括Windows、Mac OS和Linux。其中Windows是由微软公司开发的操作系统,Mac OS是由苹果公司开发的操作系统,而Linux则是开放源代码的操作系统,它有很多的发行版:比如&#xf…

PostgreSQL(二十二)缓冲区管理器

目录 一、缓冲区概述 1、缓冲区结构 2、buffer_tag结构 3、Backend进程读取操作 4、写脏块 二、缓冲区管理器结构 1、第一层:Buffer Table layer(缓冲区表层) 2、第二层:Buffer Descriptor Layer(缓冲区描述层…

Vue2-动画

1.transition过渡 | 用transition CSS做动画 Vue-transition文档:进入/离开 & 列表过渡 — Vue.js [用transition做CSS动画]Enter状态:JS Bin - Collaborative JavaScript Debugging Leave状态:JS Bin - Collaborative JavaScript Debug…

经验分享:征信查询多了会不会影响大数据综合评分?

很多人在申请贷款的时候,会有一个疑问,就是自己的征信没逾期,就是查询偏多一点,但能达到申贷要求,为什么还会被拒贷?其实就是大数据花了的原因,那征信查询多了会不会影响大数据综合评分呢?接下来本文就为…

【C++】继承最全解析(什么是继承?继承有什么用?)

目录 一、前言 二、什么是继承 ? 💢继承的概念💢 💢继承的定义💢 🥝定义格式 🍇继承权限 三、基类与派生类对象的赋值转换 四、继承的作用域 五、派生类中的默认成员函数 &#x1f4a2…

[leetcode]minimum-cost-to-reach-destination-in-time 规定时间内到达终点的最小费用

. - 力扣&#xff08;LeetCode&#xff09; class Solution { private:// 极大值static constexpr int INFTY INT_MAX / 2;public:int minCost(int maxTime, vector<vector<int>>& edges, vector<int>& passingFees) {int n passingFees.size();ve…