美文网首页
packge-loack.json文件

packge-loack.json文件

作者: 廊桥梦醉 | 来源:发表于2023-07-25 17:16 被阅读0次

以下是前端环境,非ci环境

npm是一个包管理器,在package.json中有项目对各个包的依赖,在首次npm install生成package-lock.json.

package-lock.json就是用以记录当前实际安装的npm 包的具体信息, 锁死版本号,包之间的依赖关系和缓存信息

简单的说,package-lock.json 就是确保你项目中的依赖不会在你不知不觉中自动升级。

以vuex的安装为例

执行npm install 的时候,如果当前目录没package-lock.json文件,会在当前目录下生成一个package-lock.json文件

安装:   npm install vuex@^3.6.2

确定版本:   package.json为 { "vuex": "^3.6.2"}

package-lock.json文件的版本是{ "version": "3.6.2"}

node_modules中的版本时候3.6.2

安装:   npm install vuex@^3.1.0 // 版本号前的^,意思是下载依赖时默认更新当前大版本下的最新版本

确定版本:   package.json为 { "vuex": "^3.1.0"}

package-lock.json文件的版本是{ "version": "3.6.2"}

node_modules中的版本时候3.6.2

安装:   npm install vuex@3.1.0。// 删除版本前的^

确定版本:   package.json为 { "vuex": "3.1.0"}

package-lock.json文件的版本是{ "version": "3.1.0"}

node_modules中的版本时候3.1.0

删除node_modules,重新 npm install,目录下无论是否存在package-lock.json文件

package.json为 { "vuex": "^3.1.0"}

package-lock.json文件的版本是{ "version": "3.6.2"}

node_modules中的版本时候3.6.2

手动将json中的vuex的版本改为^4.0.0,然后npm install

lock文件的antd版本更新

如果通过npm i antd@4.0.0 安装的话也会更新lock文件

新的package中的antd版本与package-lock生成时旧的package设置的版本不一致

package.lock文件更新,下载vuex最新的4.1.0版本(4.x.x版本最高版本)

package.json 为 { "vuex": "^4.0.0" }

package-lock.json 的verion为 "version": "4.1.0",

node_modules version vuex@4.1.0

      将node版本升级到 10+, npm 升级到 6+ ,在执行 npm install 操作时,node会动态生成package-lock.json,这样其他人再用 npm安装时,包的版本会和 package-lock.json 中定义的一样。

通常我们在npm i XXX@5.1.0插件的指定版本时,package.json会自动插入一条,默认显示XXX:'^5.1.0'插件名及其版本号,但是版本号前的^,意思是下载依赖时默认更新当前大版本下的最新版本,实际上在package-lock.json中可能就指定的是XXX的5.10.2版本了。 可以修改package.json,手动去掉版本号前面的^,达到固定下载的插件版本的目的。

npm view 依赖包名 versions --json

查看本地当前版本号可参考:https://www.python100.com/html/X3BZ01IO5M90.html

参考:https://blog.csdn.net/kelly0721/article/details/122931230

当package.json与package-lock.json的依赖版本不一致时,如何抉择?
      1、npm v5.0.x: 根据package.json下载
      2、npm v5.1.0-v5.4.2当package.json声明的依赖版本的规范有符合更新版本时,就忽略package-lock.json, 按照package.json安装并更新package-lock.json
       3、npm5.4.2之后当package.json声明的依赖版本规范与package-lock安装版本兼容时,根据lock安装,如果不兼容安装package.json安装.

      npm ci相对npm install的不同是,ci要求项目中必须有package-lock.json,同时ci在安装的时会先删除node_modules再权限一次性完全按照package.json安装,如果与package.json有冲突,直接报错.

npm install工作原理

package-lock.json可以提交到git上,但是发布的npm包不要提交package-lock.json,具体根据团队要求

相关文章

网友评论

      本文标题:packge-loack.json文件

      本文链接:https://www.haomeiwen.com/subject/pvbcpdtx.html