首页 > 其他分享 >前端 Vue yarn.lock文件:详解和使用指南

前端 Vue yarn.lock文件:详解和使用指南

时间:2024-05-02 15:22:25浏览次数:22  
标签:文件 Vue lock yarn js 依赖 版本

yarn.lock文件:详解和使用指南

https://www.python100.com/html/38KF796X6BHM.html

一、什么是yarn.lock文件

yarn.lock文件是一个产生于Yarn 0.22及以后版本的文件,它是一个自动生成的锁文件,记录了当前项目的依赖关系,并确保每个依赖的版本都是稳定的,这样可以保证软件包安装的重现性和可靠性,避免不必要的依赖冲突和版本更新造成的问题。

二、yarn.lock文件的作用

在一个JavaScript项目中,通常会依赖很多的npm模块,而这些模块中可能存在依赖关系,以及不同版本的模块可能会有冲突。yarn.lock文件记录了所有模块的确切版本号和依赖关系,它的作用就是为了锁定这些模块的版本,以确保在不同的环境中,都可以得到相同的依赖版本。

如果没有yarn.lock文件,随着npm模块的更新、升级或者删除,依赖版本将变得不可预测,即使使用相同的命令下载依赖,可能也会得到不同的版本,这会导致程序的运行出现异常,而且解决依赖问题也会变得非常困难。

三、yarn.lock文件的使用

1. 创建yarn.lock文件

yarn.lock文件默认是不存在的,使用yarn install或yarn add命令时,yarn会自动生成yarn.lock文件,并且锁定所有的依赖包.

 
// 安装依赖,并生成yarn.lock文件
yarn add react
yarn install

2. 更新yarn.lock文件

运行yarn add或yarn upgrade命令会自动更新yarn.lock文件,如果我们想独立更新某个包的版本,可以直接手动修改yarn.lock文件,然后再运行yarn install来更新依赖。

// 升级某个包的版本
yarn upgrade [email protected]

3. 解决依赖冲突

yarn.lock文件中的锁定版本,会自动解决依赖关系,避免了可能出现的依赖冲突。在同一台机器中,不同的项目可以使用不同的锁定文件,这样依赖关系会被保证,而且减少提交到代码库中的冗余文件的数量。

4. 共享yarn.lock文件

在团队协作开发时,如果每个人都使用npm install或yarn install来下载依赖,不能确保每个人都会使用相同的依赖版本,可能导致代码构建出现问题,解决这个问题最好的方式是将yarn.lock文件提交到代码仓库中,所有成员都使用同一个yarn.lock文件来下载依赖。


五、yarn.lock文件的示例代码

# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
# yarn lockfile v1
yarn.lock 文件用于跟踪项目依赖的具体版本,以确保其他开发人员在运行 yarn install 时安装相同版本的依赖,从而保持项目环境的一致性。

core-js-compat@^3.0.0:
  version "3.14.0"
  resolved "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.14.0.tgz#b574dabf29184681d5b16357bd33d104df3d29a5"
  integrity sha1-tXTavykYRoHVsWNXvTPRBN89KaU=
  dependencies:
    browserslist "^4.16.6"
    semver "7.0.0"

1.5.1. Identifier(s)

第一行的 core-js-compat@^3.0.0 是依赖的 identifier。和 package.json 里对应的包名和版本区间, 用 @ 连接。这边的标题里带了 (s), 是因为多个 Identifier 最终可能都指向同一个版本 (具体例子可以看下文 ### dependencies 里给出的例子)
1.5.2. version

第二行 version 是实际安装的版本。通常是满足版本区间里的一个版本, 比如上一行 identifier 里版本区间是 ^3.0.0, 这里实际安装的是 3.14.0, 符合要求。但是为什么要说是 “通常” 呢, 因为有例外, 在后文 ### resolutions 部分会讲到。
1.5.3. resolved

第三行 resolved 的是一个链接, 是下载这个包的地址。这个 url 里的域名部分跟项目里配置的 .npmrc 或你本地的 npm 配置的 registry 有关。
1.5.4. integrity

第四行 integrity 是对 resolved 下载下来的文件进行完整性校验。如果出现 diff, 说明同一个下载链接对应的文件被修改过。
1.5.5. dependencies

第五行 dependencies 是这个包自己的依赖。如这里依赖的 browserslist "^4.16.6", 你想看下实际安装的哪个版本, 就可以把它拼成 Identifierbrowserslist@^4.16.6", 以此为关键字在 yarn.lock 中搜索, 就能找到对应的 “块” 了。
链接:https://blog.csdn.net/wan212000/article/details/125302217

"@achrinza/node-ipc@^9.2.5":
"integrity" "sha512-/EvNkqB4HNxPWCZASmgrjqG8gIdPOolD67LGASvGMp/FY5ne0rbvpYg5o9x8RmgjAl8KdmNQ4YlV1et9DYiW8g=="
  "resolved" "https://registry.npmmirror.com/@achrinza/node-ipc/-/node-ipc-9.2.7.tgz"
  "version" "9.2.7"
 dependencies:
    "@node-ipc/js-queue" "2.0.3"
    "event-pubsub" "4.3.0"
    "js-message" "1.0.7"

...

标签:文件,Vue,lock,yarn,js,依赖,版本
From: https://www.cnblogs.com/emanlee/p/18006801

相关文章

  • vite vue-cli 读取文件原始内容 使用base64内容的文件
    新建文件img.dataurl中存放图片base64<imgclass='img':src='dataurl'alt=''/>importdataurlfrom'./img.dataurl'data(){return{dataurl:dataurl}}vue.config.jsmodule.exports=defineConfig({configureWebpack:{......
  • vue-基础
    渲染的范围<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>Title</title></head><body><p>狂神说Java</p><!--view层模板--><divid="app&quo......
  • 在.npmrc中 unsafe-perm = true package-lock=false的作用
    在.npmrc配置文件中,unsafe-perm和package-lock的设置有各自的作用:unsafe-perm=true:此设置影响npm(或pnpm,如果使用该包管理器)在执行包脚本时的行为。默认情况下,当以root或具有管理员权限的用户身份运行npm安装命令时,npm会限制包脚本中的权限,避免以root身份执......
  • Vue列表过滤
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><title>列表过滤</title><......
  • Vue .eslintrc.js
    Vue .eslintrc.jshttps://blog.csdn.net/weixin_33721344/article/details/88685833 Vue的Eslint配置文件eslintrc.js说明与规则介绍 最近在跟着视频敲项目时,代码提示出现很多奇奇怪怪的错误提示,百度了一下是eslintrc.js文件没有配置相关命令,ESlint的语法检测真的令人抓......
  • Vue | babel.config.js 配置详解
    babel.config.js 1概述Babel相当于一个中介,一边是用户,另一边是浏览器。这几年,JavaScript发生了很大的变化,许多新特性在很多浏览器里都不支持。Babel的主要作用就是规避这些问题,可以确保JavaScript代码兼容所有的浏览器,比如IE11。2Babel的工作原理Babel使用AST把......
  • Vue .gitignore
    Vue.js是一种流行的开源JavaScript框架,被广泛用于构建现代化的Web应用程序。Vue.js用于构建用于数据响应的单页面应用程序,但是在处理大型项目时可能会出现许多临时文件和配置文件,这些文件可以使用.gitignore文件从Git跟踪中排除。Vue.js有一个标准的.gitignore文件......
  • vue 项目构建之 jsconfig.json 作用
    目录   vue项目构建之jsconfig.json作用   VScode的配置vue项目构建之jsconfig.json作用   由于webpack别名配置好以后,如果想要在vscold中可以正确提示路径,就需要配置jsconfig.json文件:   再项目目录下创建jsconfig.json文件{ "compilerOptions":{   "base......
  • 启动vue项目时发生了什么
    简介最近在做vue项目时,遇到一些vuecli方面的报错,于是便想深入研究一下vuecli。这里先简单写一篇,如果有更细致的探究,再另作打算。执行npmrundev前提是你已经安装了node,并且附带了npm。执行npmrundev时,npm会自动搜索当前目录下的package.json,找到scripts配置项中的dev脚本......
  • Vue mockjs mock.js
    https://www.jianshu.com/p/0d6a0bdce55c?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendationhttps://blog.csdn.net/cuclife/article/details/131119983        操作步骤           1)安装mockjs和axios:  ......