[7] yarn与yarn.lock

326 阅读2分钟

1 yarn

1.1 背景

今天学习项目,发现里面有个yarn.lock的文件,借此机会,学习下yarn以及yarn.lock的作用

image.png

1.2 yarn

Yarn是一个快速可靠安全的依赖管理工具,为什么要用yarn呢,因为它确实比npm要快。

主要的三个特点:

  • 极其快速,Yarn会缓存它下载的每个包,所以无需重复下载。它还能并行化操作以最大化资源利用率。
  • 特别安全,Yarn会在每个安装包被执行前校验其完整性
  • 超级可靠, Yarn使用格式详尽而又简洁的lockfile文件和确定性算法来安装依赖,能够保证在一个系统上的运行的安装过程也会以同样的方式运行在其他系统上

使用:yarn.bootcss.com/docs/usage/

2 yarn.lock

2.1 定义

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

为了跨机器安装得到一致的结果,Yarn 需要比你配置在 package.json 中的依赖列表更多的信息。 Yarn 需要准确存储每个安装的依赖是哪个版本。 为了做到这样,Yarn 使用一个你项目根目录里的 yarn.lock 文件。

这和用Npm 生成的pakage-lock.json一样的作用。

需要注意的是: 所有 yarn.lock 文件应该被提交到版本控制系统。
不要直接编辑这个文件,因为很容易破坏某些东西。

2.2 总结

  • yarn.lock的作用是为了安装的时候按照它指定的版本安装是这个意思是吧,比package.json展示更加详细的信息。
  • 如果在一个项目中我们同时使用了npm和yarn(不建议这样做),npm和yarn安装的包都会被记录在package.json中。但是他们会有各自的dependency lock文件,npm的是pakage-lock.json, yarn的是yarn.lock。
  • 如果你的项目中同时有pakage-lock.json和yarn.lock,你可以选择提交其中的任意的一个。如果你希望他人通过npm来进行依赖包的安装,你应该选择提交pakage-lock.json;如果你希望他人通过yarn来进行依赖包的安装,你应该提交yarn.lock。如果你希望他人自行决定是使用npm还是yarn,你应该提交pakage-lock.json和yarn.lock这两个文件,但是这有可能造成不同步的问题。