name | 是 | 包的名称,在 npm 上必须唯一,只能包含小写字母、数字、连字符和下划线。 | "name": "my-awesome-package" |
version | 是 | 遵循语义化版本规范(SemVer),格式为 MAJOR.MINOR.PATCH。 | "version": "1.2.3" |
description | 否 | 包的简要描述,有助于在 npm 搜索结果中展示。 | "description": "这是一个很棒的包,能实现特定功能" |
keywords | 否 | 用于描述包的关键词数组,便于搜索。 | "keywords": ["util", "helper", "tool"] |
homepage | 否 | 包的项目主页 URL。 | "homepage": "https://github.com/user/my-package#readme" |
bugs | 否 | 包含 url 和 email 字段,分别指向问题反馈页面和反馈邮箱。 | "bugs": { "url": "https://github.com/user/my-package/issues", "email": "support@example.com" } |
license | 否 | 包的开源许可证,如 MIT、Apache-2.0 等。 | "license": "MIT" |
author | 否 | 包的作者信息,可以是字符串或对象(包含 name、email、url)。 | "author": "John Doe <john@example.com> (https://example.com)" |
contributors | 否 | 贡献者信息数组,格式同 author。 | "contributors": [ "Jane Smith <jane@example.com> (https://example.com)" ] |
files | 否 | 指定发布时要包含的文件和目录数组,不指定则默认包含所有文件。 | "files": ["src", "dist", "README.md"] |
main | 否 | 指定包的入口文件,require('package-name') 时会加载该文件。 | "main": "lib/index.js" |
browser | 否 | 类似于 main,但用于浏览器环境。 | "browser": "dist/bundle.js" |
bin | 否 | 定义可执行文件,可在命令行中使用。可以是单个字符串或对象。 | "bin": { "my-cli": "bin/my-cli.js" } |
man | 否 | 指定手册页文件路径数组。 | "man": [ "doc/my-package.1" ] |
directories | 否 | 描述包的目录结构,常见子字段有 lib、bin、doc、test 等。 | "directories": { "lib": "lib", "test": "test" } |
repository | 否 | 包含 type 和 url 字段,指向代码仓库信息。 | "repository": { "type": "git", "url": "https://github.com/user/my-package.git" } |
scripts | 否 | 定义可通过 npm run 执行的脚本,键为脚本名,值为命令。 | "scripts": { "start": "node server.js", "test": "jest" } |
config | 否 | 为 scripts 中的脚本提供配置参数。 | "config": { "port": 3000 } |
dependencies | 否 | 生产环境依赖的包及其版本范围,安装时会一并安装。 | "dependencies": { "lodash": "^4.17.21", "axios": "^0.21.1" } |
devDependencies | 否 | 开发环境依赖的包及其版本范围,如测试工具、打包工具等。 | "devDependencies": { "jest": "^27.0.6", "webpack": "^5.38.1" } |
peerDependencies | 否 | 指定与当前包兼容的其他包的版本范围,不会自动安装。 | "peerDependencies": { "react": "^17.0.2", "react-dom": "^17.0.2" } |
peerDependenciesMeta | 否 | 为 peerDependencies 提供元信息,如 optional 表示该依赖是可选的。 | "peerDependenciesMeta": { "lodash": { "optional": true } } |
bundledDependencies | 否 | 指定打包时要包含的依赖数组。 | "bundledDependencies": ["lodash", "axios"] |
optionalDependencies | 否 | 可选依赖,安装失败不会影响整个安装过程。 | "optionalDependencies": { "fsevents": "^2.3.2" } |
engines | 否 | 指定包运行所需的 Node.js 或 npm 版本范围。 | "engines": { "node": ">=14.0.0", "npm": ">=7.0.0" } |
os | 否 | 指定包可以运行的操作系统数组。 | "os": ["darwin", "linux"] |
cpu | 否 | 指定包可以运行的 CPU 架构数组。 | "cpu": ["x64", "arm64"] |
private | 否 | 设置为 true 时,npm 不会发布该包。 | "private": true |
publishConfig | 否 | 发布时的额外配置,如 registry 指定发布的 npm 注册表。 | "publishConfig": { "registry": "https://registry.npmjs.org" } |