项目中遇到一个问题,再次记录一下
原因:在本地运行没问题,发布到测试环境后出不来,后来发现是因为有一个插件未解析的原因,因为本地有yarn.lock文件,发布到测试的没有这个文件,插件包的版本没有锁定。
package.json中,这里的^向上尖号是定义向后(新)兼容依赖,如果types/node版本是超过8.0.33,并且是在大版本(8)上相同,就允许下载最新的types/node包。同一个大版本不同版本号之间存在差异,导致依赖库包行为特征有时候不兼容。
yarn.lock 和 package-lock.json的作用类似,都是锁定插件版本。
Yarn是一个快速可靠安全的依赖管理工具。
主要的三个特点:
- 极其快速,Yarn会缓存它下载的每个包,所以无需重复下载。它还能并行化操作以最大化资源利用率。
- 特别安全,Yarn会在每个安装包被执行前校验其完整性
- 超级可靠,Yarn使用格式详尽而又简洁的lockfile文件和确定性算法来安装依赖,能够保证在一个系统上的运行的安装过程也会以同样的方式运行在其他系统上
yarn.lock的具体的作用是什么?它能给项目带来什么作用?
Yarn使用确定性算法,在将文件放置到需要的位置之前构建整个依赖关系树。安装过程中重要信息存储到yarn.lock文件中,以便可以在安装依赖关系的每个系统之间共享!此文件包含有关已安装的每个依赖项的确切版本的信息以及代码的校验和以确保代码完全相同。
此文件会锁定你安装的每个依赖项的版本,这可以确保你不会意外获得不良依赖;
并且会避免由于开发人员意外更改或则更新版本,而导致糟糕的情况!