package.json与package-lock.json文件是干什么用的?

1.node_modules介绍

  • node_modules文件夹中存放许多的模块文件及插件

2.package.json文件的作用

产生背景:在拷贝项目时不需要拷贝node_modules文件夹,如果拷贝的话会很慢,那么如何解决安装的依赖与原项目依赖及版本保持一致呢?

  • package.json 项目描述文件,保存在项目的根目录下面,记录了当前的项目信息,用npm init -y命令生成
  • 拷贝项目后,直接执行npm install会自动安装package.json 文件中记录的依赖

package.json文件

{
  "name": "description",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",//主入口文件
  "scripts": {
    "test": "echo "Error: no test specified" && exit 1"//命令别名
  },
  "keywords": [],
  "author": "",
  "license": "ISC"
  "dependencies": {//项目依赖
    "formidable": "^1.2.2",
    "mime": "^2.4.4"
  },
  "devDependencies": {//开发依赖
    "gulp": "^4.0.2"
  }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

3.项目依赖vs开发依赖

项目依赖

  • 项目依赖:在项目的开发阶段和线上运营阶段,都需要依赖的第三方包
  • 使用npm install 包名 命令将包添加到package.json文件的dependencies字段中
  • 重新安装时使用npm install --production 只安装项目依赖

开发依赖

  • 开发依赖:在项目的开发阶段需要依赖,线上运营阶段不需要的第三方包
  • 使用npm install 包名 --save-dev命令将包添加到package.json文件的devDependencies字段中

4.package-lock.json文件的作用

  • 记录模块与模块之间的依赖关系
  • 锁定包的版本
  • 记录项目所依赖第三方包的树状结构和包的下载地址,加快重新安装的下载速度