本文介绍: 当存在项目中时,yarn.lock 是有关项目依赖当前版本的主要信息来源。Yarn 使用信息检查是否需要更新任何东西——它将当前安装项目中的依赖版本(列在 yarn.lock 中)与 package.json 中的版本限制进行比较,并在需要更新包。它列出了在安装过程使用的依赖项的版本。这意味着它会查看您的 package.json 并根据版本控制语法,它将安装您的项目依赖项,然后是它们的依赖项,然后是它们的依赖项,等等。, 有必要了解什么锁定文件以及它是如何工作的。

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

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

简而言之:

存在项目中时,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:

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

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

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

原文地址:https://blog.csdn.net/i042416/article/details/126956366

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_29770.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注