- 升级依赖后,一定要同时提交 package.json 和 yarn.lock
yarn.lock 的作用?
锁定唯一版本
yarn.lock 信息?
antd@4.16.3:
version "4.16.3"
resolved "https://registry.npmjs.org/antd/-/antd-4.16.3.tgz#9836613eaeabb55a0bcd4423551df699d65f67a8"
integrity sha512-goFcDw8MB9PKgb+fHjUEOwoseL5iuMNelzcdFJOJaG1LXPm9d/ZQhQWdYbzQf5l7v6bmvvvi91WNB1rDsuXh3w==
dependencies:
"@ant-design/colors" "^6.0.0"
"@ant-design/icons" "^4.6.2"
"@ant-design/react-slick" "~0.28.1"
...(省略)
复制代码
Identifier(s)
第一行的antd@4.16.3
是依赖的 identifier。和 package.json 里对应的包名和版本区间,用@
连接。这边的标题里带了,是因为多个 Identifier 最终可能都指向同一个版本(具体例子可以看下文### dependencies
里给出的例子)
version
第二行version
是实际安装的版本。通常是满足版本区间里的一个版本,比如上一行 identifier 里版本区间是^4.0.0
,这里实际安装的是4.16.3
,符合要求。但是为什么要说是“通常”呢,因为有例外,在后文### resolutions
部分会讲到。
resolved
第三行resolved
的是一个链接,是下载这个包的地址。这个 url 里的域名部分跟项目里配置的 .npmrc或你本地的 npm 配置的 registry有关。
integrity
第四行integrity
是对resolved
下载下来的文件进行完整性校验。如果出现 diff,说明同一个下载链接对应的文件被修改过。
dependencies
第五行dependencies
是这个包自己的依赖。如这里依赖的"@ant-design/colors" "^6.0.0"
,你想看下实际安装的哪个版本,就可以把它拼成 Identifier@ant-design/colors" "^6.0.0"
,以此为关键字在 yarn.lock 中搜索,就能找到对应的“块”了。
yarn.lock 是如何生成的?
yarn.lock 是自动生成的,你不应该去手动的修改。
依赖管理
比如我们的常规操作,都会自动更新 package.json 和 yarn.lock
- 新增依赖:
yarn add
- 升级依赖:
yarn upgrade
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END