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

简介: 在实际项目中我们如果想正确使用 yarn.lock, 有必要了解什么是锁定文件以及它是如何工作的。尽管根据您使用的是 npm 还是 yarn 可以有不同的名称,但前提几乎相同。笔者从事 SAP Spartacus 开发中使用的是 yarn,所以我将在本文中使用 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文件的作用
项目中的yarn.lock文件的作用
992 0
项目中的yarn.lock文件的作用
|
11月前
|
缓存 资源调度 JavaScript
从零到一nvm、npm、cnpm、yarn、vue全套安装和环境配置以及创建新项目和如何运行人家的项目大全,最详细,保姆级
从零到一nvm、npm、cnpm、yarn、vue全套安装和环境配置以及创建新项目和如何运行人家的项目大全,最详细,保姆级
357 0
|
11月前
|
资源调度 JavaScript 前端开发
软件测试|Yarn安装指南:在不同平台上快速启动JavaScript项目
软件测试|Yarn安装指南:在不同平台上快速启动JavaScript项目
134 0
|
存储 缓存 资源调度
项目中的yarn.lock文件的作用
项目中的yarn.lock文件的作用
574 0
|
资源调度 JavaScript 前端开发
Vue开发实战01-创建基础项目,包管理使用yarn
Vue开发实战01-创建基础项目,包管理使用yarn
338 0
|
资源调度
SAP Spartacus 项目执行 yarn build --stats-json 遇到的一些错误消息
SAP Spartacus 项目执行 yarn build --stats-json 遇到的一些错误消息
136 0
SAP Spartacus 项目执行 yarn build --stats-json 遇到的一些错误消息
|
资源调度
SAP Spartacus 项目执行 yarn build --stats-json 遇到的一些错误消息
SAP Spartacus 项目执行 yarn build --stats-json 遇到的一些错误消息
126 0
SAP Spartacus 项目执行 yarn build --stats-json 遇到的一些错误消息
|
资源调度
SAP Spartacus项目执行yarn prettier-fix命令之后的输出
SAP Spartacus项目执行yarn prettier-fix命令之后的输出
104 0
SAP Spartacus项目执行yarn prettier-fix命令之后的输出
|
1月前
|
资源调度 分布式计算 Hadoop
YARN(Hadoop操作系统)的架构
本文详细解释了YARN(Hadoop操作系统)的架构,包括其主要组件如ResourceManager、NodeManager和ApplicationMaster的作用以及它们如何协同工作来管理Hadoop集群中的资源和调度作业。
37 3
YARN(Hadoop操作系统)的架构
|
1月前
|
资源调度 分布式计算 Hadoop
使用YARN命令管理Hadoop作业
本文介绍了如何使用YARN命令来管理Hadoop作业,包括查看作业列表、检查作业状态、杀死作业、获取作业日志以及检查节点和队列状态等操作。
29 1
使用YARN命令管理Hadoop作业
下一篇
无影云桌面