package.json和package-lock.json概述

package.json概述

随着前端模块化开发的流行,在使用node和npm来下载管理项目所需的依赖模块的时候,有一个文件必不可少,package.json

它定义了这个项目所需要的各种模块,以及项目的配置信息(比如名称、版本、许可证等元数据)。

当我们在命令行运行npm install的时候,就是node根据这个配置文件,自动下载所需的模块,也就是配置项目所需的运行和开发环境。

scripts字段

"scripts": {
    "lint": "./node_modules/standard/bin/cmd.js",
    "start": "npm run local",
    "local": "webpack-dev-server --mode development --port 20000",
    "build:test": "webpack --mode production",
    "build:prod": "webpack --mode production"
}

指定了运行脚本命令的npm命令行缩写,比如start指定了运行npm run start时,所要执行的命令。

dependencies字段,devDependencies字段

dependencies字段指定了项目运行所依赖的模块。使用npm install 模块名 --save,安装到dependencies。

devDependencies指定项目开发所需要的模块。使用npm install 模块名 --save-dev,安装到devDependencies。

"dependencies": {
    "@ant-design/icons": "^4.0.5",
    "antd": "4.10.3",
    "react": "^16.12.0",
    "react-dom": "^16.13.1",
    "react-redux": "^7.1.1",
    "react-router": "^5.0.1",
    "react-router-cache-route": "^1.9.0",
    "react-router-dom": "^5.0.1",
    "redux": "^4.0.4"
},
"devDependencies": {
    "clean-webpack-plugin": "^1.0.0",
    "copy-webpack-plugin": "^4.6.0",
    "css-loader": "1.0.0",
    "file-loader": "^2.0.0",
    "happypack": "^5.0.1",
    "webpack": "4.26.1",
    "webpack-cli": "3.1.2",
    "webpack-dev-server": "3.1.10"
}

a.b.c 表示版本。
波浪号 比如~1.2.2,表示安装1.2.x的最新版本(不低于1.2.2),但是不安装1.3.x,也就是说安装时不改变大版本号和次要版本号。
插入号(caret)+指定版本 比如ˆ1.2.2,表示安装1.x.x的最新版本(不低于1.2.2),但是不安装2.x.x,也就是说安装时不改变大版本号。需要注意的是,如果大版本号为0,则插入号的行为与波浪号相同,这是因为此时处于开发阶段,即使是次要版本号变动,也可能带来程序的不兼容。
latest 安装最新版本。

package-lock.json概述

1、使用cnpm install时候,并不会生成 package-lock.json 文件,也不会根据 package-lock.json 来安装依赖包,还是会使用 package.json 来安装。
2、package-lock.json 是在 npm(^5.x.x.x)后才有

package-lock.json 它会在 npm 更改 node_modules 目录树 或者 package.json 时自动生成的 ,它准确的描述了当前项目npm包的依赖树,并且在随后的安装中会根据 package-lock.json 来安装,保证是相同的一个依赖树,不考虑这个过程中是否有某个依赖有小版本的更新。官方是这样解释的

它的产生就是来对整个依赖树进行版本固定(锁死)。

当我们在一个项目中npm install时候,会自动生成一个package-lock.json文件,和package.json在同一级目录下。

package-lock.json记录了项目的一些信息和所依赖的模块。这样在每次安装都会出现相同的结果.。不管你在什么机器上面或什么时候安装。

当我们下次再npm install时候,npm 发现如果项目中有 package-lock.json 文件,会根据 package-lock.json 里的内容来处理和安装依赖而不再根据 package.json。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值