package.json 说明
package.json
jsonc
{
// [必须配置项]
// 项目的名称,必须是唯一的。
"name": "my-project",
// 项目的版本号,遵循 x.y.z 的格式,其中 x 表示主版本号、y 表示次版本号、z 表示修订版本号。
"version": "1.0.0",
// [可选配置项]
// 项目的描述信息。
"description": "My awesome project",
// 关键字,用于搜索。
"keywords": ["keyword1", "keyword2"],
// 项目的主页。
"homepage": "https://my-project.com",
// 代码仓库信息,包含 type 和 url 两个字段。
"repository": {
"type": "git",
"url": "https://github.com/my-username/my-project.git"
},
// 问题反馈地址,包含 url 和 email 两个字段。
"bugs": {
"url": "https://github.com/my-username/my-project/issues"
},
// 项目的许可证类型。
"license": "MIT",
// 作者信息,包含 name、email 和 url 三个字段。
"author": {
"name": "My Name",
"email": "my-email@example.com",
"url": "https://my-website.com"
},
// 贡献者信息,包含一个数组,每个元素是一个对象,包含 name、email 和 url 三个字段。
"contributors": [
{
"name": "Contributor 1",
"email": "contributor1@example.com",
"url": "https://contributor1-website.com"
},
{
"name": "Contributor 2",
"email": "contributor2@example.com",
"url": "https://contributor2-website.com"
}
],
// 项目的生产环境依赖包,会在安装时一并安装。
"dependencies": {
"dependency1": "^1.0.0",
"dependency2": "^2.0.0",
"dependency3": "^3.0.0"
},
// 项目的开发环境依赖包,不会在安装时一并安装。
"devDependencies": {
"devDependency1": "^1.0.0",
"devDependency2": "^2.0.0",
"devDependency3": "^3.0.0"
},
// 项目的对等依赖包,必须和它的父级模块使用同一个包。
"peerDependencies": {
"peerDependency1": "^1.0.0",
"peerDependency2": "^2.0.0",
"peerDependency3": "^3.0.0"
},
// 可选依赖包,如果没有安装,不会影响程序的运行。
"optionalDependencies": {
"optionalDependency1": "^1.0.0",
"optionalDependency2": "^2.0.0",
"optionalDependency3": "^3.0.0"
},
// 打包在模块中的依赖包,用于发布模块时一并打包。
"bundledDependencies": ["dependency1", "dependency2"],
// 项目的可执行文件,包含一个对象,键名是可执行文件的名称,值是可执行文件的路径。
"bin": {
"my-cli": "./bin/my-cli.js"
},
// 项目的入口文件,默认为 index.js。
"main": "index.js",
// ES6 模块的入口文件。
"module": "src/index.js",
// TypeScript 类型定义文件的入口文件。
"types": "src/index.d.ts",
// 发布到 npm 上的文件列表,可以使用通配符。
"files": ["dist/", "src/", "README.md"],
// 包含一个 lib 字段和一个或多个自定义的目录字段,用于指定程序的目录结构。
"directories": {
"doc": "docs",
"test": "tests"
},
// 定义了一组脚本命令,可以使用 npm run <script-name> 命令来运行。
"scripts": {
"start": "node index.js",
"test": "jest"
},
// 自定义配置项。
"config": {
"my-config": true
},
// 字段指定了该包所依赖的 Node.js 版本,版本号必须大于等于 10.0.0。不符合要求,将会发出警告。
"engines": {
"node": ">=10.0.0",
"npm": ">=6.0.0"
},
// 发布到 npm 上的 man 文档的路径。
"man": ["doc/man/my-package.1", "doc/man/my-package.2"],
// 支持的操作系统类型,是一个字符串数组。
"os": ["linux", "darwin"],
// 支持的 CPU 架构类型,是一个字符串数组。
"cpu": ["x64", "arm64"],
// 用于指定项目支持的浏览器版本范围的配置项
"browserslist": [
// 支持最近 n 个版本的浏览器。
"last 2 versions",
// 支持全球使用率大于 x% 的浏览器。
"> 1%",
// 支持 IE 版本号为 x 的浏览器。
"IE 11",
// 排除指定的浏览器(没有安全更新的)。
"not dead"
],
// 如果设置为 true,则表示这个包是私有的,不能发布到 npm 上。
"private": false,
// 发布到 npm 上的配置项,包含 registry、access 和 tag 三个字段。
"publishConfig": {
"registry": "https://registry.npmjs.org/",
"access": "public",
"tag": "latest"
}
}