在npm包时会出现两个文件一个叫package.json
,另一个叫package-lock.json
今天看到了黑马node教程后了解了,顺便记录一下
1.什么情况下会出现package-lock.json
- npm5之前不会有
package-lock.json
文件 - npm5之后才加入了这个文件
- 当你安装包的时候,npm都会生成或更新
package-lock.json
这个文件
也就是说npm5以后版本的安装包不需要加--save
参数,它会自动保存依赖信息
2.package.json
和package-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
里才有那么多文件