一、package.json文件
1.创建一个package.json文件
可以使用npm init -y命令生成
2. 生成一个默认的package.json
{
"name": "test",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [],
"author": "",
"license": "ISC"
}
package.json中记录了项目名称、版本、作者等。
除了上述信息外,文件里也包含里当前项目依赖了哪些第三方模块。这些项目依赖可分为项目依赖和开发依赖。
3项目依赖
在项目的开发阶段和线上运营阶段,依赖的第三方包,称为项目依赖
下载命令:npm install 包名
下载的文件会默认被添加到 package.json文件的dependencies 字段中
01. 例如下载jquery
npm install jquery
02. package.json的内容如下:
{
"name": "test",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [],
"author": "",
"license": "ISC",
"dependencies": {
"jquery": "^3.6.0"
}
}
03. 我们能发现,文件里多了一个dependencies:
"dependencies": {
"jquery": "^3.6.0"
}
4开发依赖
在项目的开发阶段需要依赖,线上运营阶段不需要依赖的第三方包,称为开发依赖
使用npm install 包名 --save-dev
命令将包添加到package.json
文件的devDependencies
字段中
01. 例如下载gulp
npm install gulp --save-dev
02. package.json的内容如下:
{
"name": "test",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [],
"author": "",
"license": "ISC",
"dependencies": {
"jquery": "^3.6.0"
},
"devDependencies": {
"gulp": "^4.0.2"
}
}
03. 我们能发现,文件里多了一个devDependencies:
"devDependencies": {
"gulp": "^4.0.2"
}
二、package.json作用
1 node_modules文件夹的问题
目前项目都是按照工程化的方式创建的,其中会有很多第三方包,下载的第三方包文件都被放在的mode_modules
文件夹中,当我们把一个项目拷贝给别人时,如果连带着mode_modules
文件,会下载的相当慢。
其次,模块的版本都是不定时更新和维护的,如果不记录着,会导致项目运行报错
2 package-lock.json文件的作用
下载第三方依赖包时,会在项目根目录下生成一个package-lock.json
文件package-lock.json
这个文件会保存node_modules
中所有包的信息
这个文件的主要作用是:
锁定包的版本,确保再次下载时不会因为包版本不同而产生问题
Readings
截图来自日本动漫《怪物事变》
END
原文来自:package.json文件详解