package.json、package-lock.json、yarn.lock 之间的关系

本文将简单介绍 package.json、package-lock.json、yarn.lock 之间的关系。

npm 是什么?

npm 为你和你的团队打开了连接整个 JavaScript 天才世界的一扇大门。它是世界上最大的软件注册表,每星期大约有 30 亿次的下载量,包含超过 600000 个 包(package) (即,代码模块)。来自各大洲的开源软件开发者使用 npm 互相分享和借鉴。包的结构使您能够轻松跟踪依赖项和版本。并且是 Node.js 平台的默认包管理工具。通过 npm 可以安装、共享、分发代码,管理项目依赖关系。

yarn 是什么?

Yarn 对你的代码来说是一个包管理器, 你可以通过它使用全世界开发者的代码, 或者分享自己的代码。Yarn 做这些快捷、安全、可靠,所以你不用担心什么。

通过Yarn你可以使用其他开发者针对不同问题的解决方案,使自己的开发过程更简单。 使用过程中遇到问题,你可以将其上报或者贡献解决方案。一旦问题被修复, Yarn会更新保持同步。

代码通过 包(package) (或者称为 模块(module)) 的方式来共享。 一个包里包含所有需要共享的代码,以及描述包信息的文件,称为 package.json 。

npm 和 yarn 的区别

npm

yarn

说明

npm install

yarn

安装项目依赖

npm install react --save

yarn add react

添加一个依赖到项目中,如:添加 react 到项目

npm uninstall react --save

yarn remove react

从项目删除一个依赖,如:从项目删除 react 依赖

npm install react --save-dev

yarn add react --dev

将项目依赖添加到开发依赖,只有在开发模式下才能使用

npm update --save

yarn upgrade

更新项目依赖

package-lock.json 和 yarn.lock 文件的关系

pakage-lock.json 文件

npm 5.0 版本之后,npm install 后都会有一个 package-lock.json。这是因为原来 package.json 文件只能锁定大版本,也就是版本号的第一位,并不能锁定后面的小版本,你每次 npm install 都是拉取的该大版本下的最新的版本,为了稳定性考虑我们几乎是不敢随意升级依赖包的,这将导致多出来很多工作量,测试/适配等,所以 package-lock.json 文件出来了,当你每次安装一个依赖的时候就锁定在你安装的这个版本。

pakage-lock.json 文件有如下作用:

  • 锁定安装时的包的版本号,需要上传到 git/svn,保证大家的依赖包一致。

  • package-lock.json 是在 `npm install` 时候生成一份文件,用来记录当前状态下实际安装的各个 npm package 的具体来源和版本号。

yarn.lock 文件

Yarn 在运行时会创建一个 yarn.lock 文件用来保存所安装的依赖包的确切版本。作用如下:

  • yarn.lock 文件会锁定你安装的每个依赖项的确切版本,这可以确保你不会意外获得不良依赖。如:以前是1.2.1,执行 yarn 后,变为 1.2.2

  • 避免由于开发人员意外更改或者更新版本,而导致项目不兼容等问题

总结

package.json文件:该文件用来保存项目的依赖,并不能指定到某一个具体的依赖。yarn 和 npm 均使用该文件去安装依赖。

package-lock.json 文件:npm 安装项目依赖时记录实际依赖版本信息,下次可以通过该文件去下载依赖,保证项目每次下载的依赖版本完全一致。

yarn.lock 文件:yarn 安装项目依赖时记录实际依赖版本信息,下次可以通过该文件去下载依赖,保证项目每次下载的依赖版本完全一致。

一个不注意小事情的人,永远不会成功大事业。——戴尔·卡耐基
0 不喜欢
说说我的看法 -
全部评论(
没有评论
关于
本网站专注于 Java、数据库(MySQL、Oracle)、Linux、软件架构及大数据等多领域技术知识分享。涵盖丰富的原创与精选技术文章,助力技术传播与交流。无论是技术新手渴望入门,还是资深开发者寻求进阶,这里都能为您提供深度见解与实用经验,让复杂编码变得轻松易懂,携手共赴技术提升新高度。如有侵权,请来信告知:hxstrive@outlook.com
公众号