vue项目里的package.json与package-lock.json作用及区别

首先了解一下package.json里面的dependencies 和devDependencies的区别

dependencies 和devDependencies的区别

dependencies:依赖,附属,而前缀dev是develop的简写,

devDependencies是开发环境下的依赖;不用于生产环境

dependencies是生产环境下的依赖,开发环境使用生产环境也使用

使用npm安装依赖时,

–save,安装的依赖会被写到dependencies区块里面

使用–save-dev安装依赖,则会被写到devDependencies区块里面去

 

package.json与package-lock.json作用

每次生成一个vue项目的时候,都会生成这两个文件,一个文件清晰明了,一个很多连接一样的块;

npm5之前的版本,是不会生成package-lock.json这个文件的。npm5版本及以后,才会生成package-lock.json文件,npm5版本及以后的版本,在安装包的时候,不需要加 --save(-s) 参数,也会自动在package.json中保存依赖项,当安装包的时候,会自动创建或者更新package-lock.json文件。

package-lock.json文件内保存了 node_modules中所有包的信息,包含着这些包的名称、版本号、下载地址。这样带来好处是,如果重新 npm install 的时候,就无需逐个分析包的依赖项,因此会大大加快安装速度;

package-lock.json文件,lock代表的是“锁定”的意思。用来锁定当前开发使用的版本号,防止npm   install的时候自动更新到了更新版本。因为新版本可能替换掉老的api,导致之前的代码报错。

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

package.json文件记录你项目中所需要的所有模块。当你执行npm install的时候,node会先从package.json文件中读取所有dependencies信息,然后根据dependencies中的信息node_modules中的模块进行对比,没有的直接下载,已有的检查更新(最新版本的nodejs不会更新,因为有package-lock.json文件)。

package-lock.json文件锁定所有模块的版本号,包括主模块和所有依赖子模块。当你执行npm install的时候,node从package.json文件读取模块名称,从package-lock.json文件中获取版本号,然后进行下载或者更新。因此,正因为有了package-lock.json文件锁定版本号,所以当你执行npm install的时候,node不会自动更新package.json文件中的模块,必须用npm install packagename(自动更新小版本号)或者npm install packagename@x.x.x(指定版本号)来进行安装才会更新,package-lock.json文件中的版本号也会随着更新
 

另外,package.json文件只记录你通过npm install方式安装的模块信息,而这些模块所依赖的其他子模块的信息不会记录。

有参考以下文章整理 

原文链接:https://blog.csdn.net/weixin_44161385/article/details/134090717

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值