关于 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 不一样。


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



image.png

相关文章
|
5月前
|
资源调度 JavaScript
关于 yarn 和 npm lock 文件混用的问题
关于 yarn 和 npm lock 文件混用的问题
|
资源调度 自然语言处理
关于 yarn.lock 在实际项目中的一些作用
在实际项目中我们如果想正确使用 yarn.lock, 有必要了解什么是锁定文件以及它是如何工作的。尽管根据您使用的是 npm 还是 yarn 可以有不同的名称,但前提几乎相同。笔者从事 SAP Spartacus 开发中使用的是 yarn,所以我将在本文中使用 yarn.lock 作为示例。
|
存储 缓存 资源调度
项目中的yarn.lock文件的作用
项目中的yarn.lock文件的作用
995 0
项目中的yarn.lock文件的作用
|
5月前
|
资源调度 分布式计算 监控
剖析剖析我们的Yarn程序-Client提交
剖析剖析我们的Yarn程序-Client提交
39 0
|
5月前
|
资源调度 分布式计算 监控
YARN【工作机制】
YARN【工作机制】
|
12月前
|
资源调度 JavaScript 前端开发
yarn.lock 文件的工作原理
yarn.lock 文件的工作原理
|
资源调度 调度 容器
Yarn 的工作原理、流程【重要】
Yarn 的工作原理、流程【重要】
130 0
|
资源调度 分布式计算 Spark
Spark的YARN模式运行机制
Spark的YARN模式运行机制
230 0
Spark的YARN模式运行机制
|
资源调度 分布式计算 Hadoop
YARN 工作机制|学习笔记
快速学习 YARN 工作机制
127 0
YARN 工作机制|学习笔记
|
JSON 资源调度 安全
yarn.lock 文件和 yarn install
Yarn 是代码的包管理器。 它允许您与来自世界各地的其他开发人员一起使用和共享(例如 JavaScript)代码。 Yarn 可以快速、安全、可靠地执行此操作,因此您无需担心。
yarn.lock 文件和 yarn install