package.json和package-lock.json

本文详细解析了npm5之后引入的package-lock.json文件的作用及生成条件,对比了其与package.json的区别,阐述了它们如何共同维护项目依赖,以及package-lock.json如何锁定依赖版本,加速后续的包安装过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在npm包时会出现两个文件一个叫package.json,另一个叫package-lock.json

今天看到了黑马node教程后了解了,顺便记录一下
1.什么情况下会出现package-lock.json
  • npm5之前不会有package-lock.json文件
  • npm5之后才加入了这个文件
  • 当你安装包的时候,npm都会生成或更新package-lock.json这个文件
    也就是说npm5以后版本的安装包不需要加--save参数,它会自动保存依赖信息
2.package.jsonpackage-lock.json的作用分别是什么

当我们在目录下执行 npm init -y后,目录下会出现package.json,然后npm安装包(这里以express包为例)当我们执行npm i express(注意:没加--save),会生成一个package-lock.json

此时package.json中出现了express的依赖

//package.json
{
  "name": "package-lock",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "dependencies": {
    "express": "^4.17.1"
  }
}

package-lock.json里面存的就是node_modules里面包的信息(版本[veresion]),下载地址[resolved]),下载地址等信息

//package-lock.json
{
  "name": "package-lock",
  "version": "1.0.0",
  "lockfileVersion": 1,
  "requires": true,
  "dependencies": {
    "accepts": {
      "version": "1.3.7",
      "resolved": "https://registry.npm.taobao.org/accepts/download/accepts-1.3.7.tgz",
      "integrity": "sha1-UxvHJlF6OytB+FACHGzBXqq1B80=",
      "requires": {
        "mime-types": "~2.1.24",
        "negotiator": "0.6.2"
      }
      //后面还有很多,放不下就不放了

此时删除node_modules后执行npm install的速度会有很大的提升
package-lock.json顾名思义,lock就是锁的意思,他还有个作用就是锁住依赖的版本号,防止自动升级

关于node_modules

那么还有一个值得注意的地方,当我们安装完express包之后,会生成一个node_modules文件夹,里面有express文件夹,同时也有很多其他的文件在这里插入图片描述
我们进入到express文件夹下面,发现也有一个package.json,点击去后发现node_modules中的其他文件就是express的依赖文件,同时里面的依赖文件也需要依赖文件(禁止套娃),所以node_modules里才有那么多文件
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值