关于 yarn.lock 在实际项目中的一些作用

这篇具有很好参考价值的文章主要介绍了关于 yarn.lock 在实际项目中的一些作用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在实际项目中我们如果想正确使用 yarn.lock, 有必要了解什么是锁定文件以及它是如何工作的。尽管根据您使用的是 npm 还是 yarn 可以有不同的名称,但前提几乎相同。笔者从事 SAP Spartacus 开发中使用的是 yarn,所以我将在本文中使用 yarn.lock 作为示例。

当您在项目中运行 yarn 时,可能会发生两件事:

  • 根据 package.json 的内容生成一个锁文件(yarn.lock)(如果没有的话)
  • 根据现有 yarn.lock 的内容安装包
    重要提示:当您在应用程序或库中安装依赖项时,只考虑顶级 yarn.lock 文件。依赖项中的锁定文件将被忽略。

简而言之:

当存在于项目中时,yarn.lock 是有关项目中依赖项当前版本的主要信息来源。 Yarn 使用该信息来检查它是否需要更新任何东西——它将当前安装在项目中的依赖版本(列在 yarn.lock 中)与 package.json 中的版本限制进行比较,并在需要时更新包。其他用户可以进一步使用来自锁定文件的信息在别处创建可重复的环境。

每当您在全新安装时运行 yarn(相当于运行 yarn install)时,都会生成一个 yarn.lock 文件。 它列出了在安装过程中使用的依赖项的版本。 这意味着它会查看您的 package.json 并根据版本控制语法,它将安装您的项目依赖项,然后是它们的依赖项,然后是它们的依赖项,等等。

假设您的项目使用两个依赖项:chicken 和 farm. 这两个都是外部包,我们无法控制:

package.json:

// package.json (your project)

 dependencies: {
   "chicken": "^1.2.0",
   "farm": "2.3.0"
 }

并且 farm 包本身使用特定版本的 chicken,见下面 farm 包的 package.json:

// package.json (`farm` package)

 dependencies: {
   "chicken": "1.0.0",
   (...) 
 }

这将导致我们的项目需要两个版本的 chicken:

  • farm 包所依赖的 1.0.0
  • ^1.2.0 在项目的 package.json 中定义。 这将在全新安装时有所不同,具体取决于 1.2.0 之后的最新版本 - ^ 符号允许更改不修改版本号中最左侧的非零元素。

对于这个特定的版本范围,它意味着:

1.2.0 <= 安装版本 < 2.0.0。 举个例子 - 如果 v1.2.4 在您的项目(新)安装时可用,它将被安装。 v1.5.8、v1.7.2、v1.9.9 相同,但 v2.0.0 不一样。

安装后,会导致如下的项目层级结构:

yarn.lock,nodejs,json,javascript,前端,Node.js,npm文章来源地址https://www.toymoban.com/news/detail-654939.html

到了这里,关于关于 yarn.lock 在实际项目中的一些作用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 深度学习实战应用:分享一些深度学习在实际问题中的应用案例和经验

    目录 一、引言 二、案例一:计算机视觉——图像分类

    2024年02月02日
    浏览(38)
  • 【QT】Qt Charts的实际使用中的一些小细节完善如:resetZoom、fitInView

    在Qt中, 使用 Qt Charts来创建和操作图表,重置图表缩放状态的功能可以通过调整图表视图的缩放比例来实现。Qt Charts中的 QChartView 提供了相关的方法来控制图表的缩放和平移。 示例代码,以及如何对此功能进行扩展: chartView-resetTransform(); 是重置图表视图的缩放到默认状态。

    2024年04月17日
    浏览(38)
  • RabbitMQ在实际项目中的应用

    RabbitMQ简介 以商品订单场景为例, 如果商品服务和订单服务是两个不同的微服务,在下单的过程中订单服务需要调用商品服务进行扣库存操作。按照传统的方式,下单过程要等到调用完毕之后才能返回下单成功,如果网络产生波动等原因使得商品服务扣库存延迟或者失败,会

    2024年02月04日
    浏览(38)
  • Vuex在项目中的实际应用

    最近让我搞一个关怀版本的系统。纯纯前端、无语死。就是整个系统的字体还有框框啥的变大。简单暴力的做法就是重新写一套样式咯,这不纯纯累死人啊。琢磨了一下,如果可以保存关怀版的一个标志,然后全部组件都可以获取到该标志。通过该标志,然后动态的指定类的

    2024年02月03日
    浏览(57)
  • Java 双指针项目中的实际应用

    最近在做财务相关的系统,对账单核销预付款 从技术角度来看就是将两个数组进行合并 对账单核销预付款前提条件: 对账单总金额必须等于未核销金额 对账单数据 单号 金额 B0001 100 B0002 80 B0003 120 预付款数据 单号 未核销金额 PRE001 110 PRE002 190 结果数据 预付款单号 核销金额

    2024年02月02日
    浏览(104)
  • 策略模式在AIBOT项目中的实际应用

    原文链接 https://www.jylt.cc/#/detail?activityIndex=2id=8d1912358fa1c1d8db1b44e2d1042b70 AIBOT 你想 我来做 AIBOT https://chat.jylt.top/ 定义 策略模式(Strategy Pattern:Define a family of algorithms,encapsulate each one,and make them interchangeable.)中文解释为:定义一组算法,然后将这些算法封装起来,以便它们之间

    2024年01月21日
    浏览(55)
  • Java 双指针在实际项目中的应用

    最近在做财务相关的系统,对账单核销预付款 从技术角度来看就是将两个数组进行合并 对账单核销预付款前提条件: 对账单总金额必须等于未核销金额 对账单数据 单号 金额 B0001 100 B0002 80 B0003 120 预付款数据 单号 未核销金额 PRE001 110 PRE002 190 结果数据 预付款单号 核销金额

    2024年02月02日
    浏览(49)
  • STM32::关于项目启动的一些问题

    启动文件就做了如下的几个主要功能 详见:  单片机 STM32启动文件详解(汇编语言解析)_单片机启动文件_KaminLuo的博客-CSDN博客 STM32F4启动代码分析_mcd application team_JXDZ的博客-CSDN博客           当内核响应了一个发生的异常后,对应的异常服务程序就会被执行。 为了决定

    2024年02月12日
    浏览(41)
  • 关于信息学奥赛中的一些做题思路

    本文记录了笔者在刷题或比赛中运用到的一些做题思路 可以 适当 参考 首先显然有 (mathcal {O}(n^2)) 暴力 枚举每个子段,然后选择其中前k大的 那么可以发现有 贪心 策略: 选择k次最大值 那么考虑怎样求最大值 想到可以枚举每个起始位置,想办法计算从该位置开始符合要求

    2024年03月13日
    浏览(55)
  • Spring AOP:面向切面编程在实际项目中的应用

    🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页 ——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文并茂🦖生动形象🐅简单易学!欢迎大家来踩踩~🌺 🌊 《IDEA开发秘籍专栏》 🐾 学会IDEA常用操作,工作效率翻倍~💐 🌊 《100天精通Golang(基础

    2024年02月09日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包