package.json.lock 文件

来源:互联网 发布:mysql 添加字符串 编辑:程序博客网 时间:2024/05/22 04:37

package.json.lock: 由于^的向后兼容的特性,在package.json里面是^8.1.3, 但是在执行npm install的时候,在保证大的版本号不变的情况下下载的可能是8.1.5版本,这个时候node_modules中存放的就是这个版本的模块。

npm 包有一个规则就是同一个大版本号的包的接口符合兼容的要求,所以可以下载比现在版本号大的版本进行安装。但是npm包的世界实在太大,所以总会有一些包不遵守这个接口兼容的规则,所以就会使得有些时候npm install后会出现程序无法运行的问题。(比如程序移植到别的电脑上,别人pull了代码后执行npm install)

这个时候package.json.lock就起作用了,在node_modules,package.json发生改变时会生成该文件,将会记录下载的到底是模块的哪一个包,然后如果代码移植后不能正常运行,只需要找到该文件中记录的包的具体的版本进行安装就可以解决包的版本带来的问题

官方文档:在node_modules或者在package.json发生改变的时候会产生成该文件。

package-lock.json is automatically generated for any operations where npm modifies either the node_modules tree, or package.json. It describes the exact tree that was generated, such that subsequent installs are able to generate identical trees, regardless of intermediate dependency updates.

附录:
>version Compatible with version
version Must match version exactly
>version Must be greater than version
>=version etc
<version
<=version
1.2.x 1.2.0, 1.2.1, etc., but not 1.3.0

参考文档:
https://docs.npmjs.com/files/package-lock.json
https://www.zhihu.com/question/62331583/answer/197691747

原创粉丝点击