1. package.json 的作用
package.json 是 Node.js/npm 项目的核心配置文件,位于项目根目录,它的作用包括:
- 描述项目信息:名称、版本、作者、许可证等。
- 声明依赖 :项目运行所需的包(
dependencies)和开发所需的包(devDependencies)。 - 定义脚本命令 :通过
scripts字段,让你可以用npm run执行自定义任务(如启动、测试、构建)。 - 指定元数据:比如入口文件、浏览器兼容性等。
2. 基本结构示例
一个典型的 package.json 可能如下:
json
{
"name": "my-project",
"version": "1.0.0",
"description": "A sample Node.js project",
"main": "index.js",
"scripts": {
"start": "node index.js",
"test": "jest",
"build": "webpack"
},
"dependencies": {
"express": "^4.18.2"
},
"devDependencies": {
"jest": "^29.7.0",
"webpack": "^5.89.0"
},
"author": "Your Name",
"license": "MIT",
"keywords": ["node", "express", "example"]
}
3. 核心字段说明
3.1 项目信息字段
name:项目名称(必须小写,无空格)。version:项目版本,遵循 SemVer (语义化版本),格式为x.y.z(主版本。次版本。补丁版本)。description:项目的简短描述。author:作者信息,可以是字符串或对象(如{"name": "xxx", "email": "xxx"})。license:开源许可证类型(如MIT、ISC、GPL)。keywords:项目关键字数组,方便在 npm 上搜索。
3.2 入口与配置字段
-
main:指定项目的入口文件(默认是index.js)。 -
type:指定模块系统类型:"commonjs"(默认):使用require()导入。"module":使用import/export语法。
-
files:发布到 npm 时需要包含的文件或目录。 -
repository:项目代码仓库地址。
3.3 依赖字段
-
dependencies:生产环境依赖(项目运行时必需的包),例如:json"dependencies": { "react": "^18.2.0" }版本号前的
^表示兼容当前版本的次版本更新。 -
devDependencies:开发环境依赖(仅开发时使用,比如测试、构建工具),例如:json"devDependencies": { "eslint": "^8.55.0" } -
peerDependencies:声明项目运行时需要的外部依赖版本(常用于插件或库)。 -
optionalDependencies:可选依赖,即使安装失败也不会影响项目。
3.4 脚本字段
-
scripts:定义可执行的命令,例如:json"scripts": { "start": "node index.js", "dev": "nodemon index.js" }执行方法:
arduinonpm run start npm run dev
4. package.json 的生成方式
-
手动创建:直接新建
package.json文件并写入内容。 -
使用命令:
csharpnpm init会通过交互方式生成。
-
使用默认配置:
csharpnpm init -y直接生成一个默认的
package.json。
5. 与 package-lock.json 的关系
package.json:声明依赖的版本范围。package-lock.json:锁定安装时的具体版本,确保每次安装的依赖版本一致。
✅ 总结 :package.json 是项目的 "身份证" 和 "说明书",它定义了项目的基本信息、依赖关系、可执行脚本等。掌握它的结构和字段,是使用 npm 和 Node.js 开发的基础。