每个 Node.js 项目的根目录都有一个 package.json,它是项目的「身份证」和「说明书」——记录项目信息、依赖包、脚本命令等。本文梳理最常见的几个字段。
{
"name": "my-app",
"version": "1.0.0",
"description": "我的应用",
"scripts": {
"dev": "vite",
"build": "vite build"
},
"dependencies": {
"axios": "^1.6.0"
},
"devDependencies": {
"vite": "^5.0.0"
}
}
项目的名称和版本号,二者共同构成一个包的唯一标识。发布到 npm 时,name 不能和已存在的包重名。
定义可以运行的命令,用 npm run <脚本名> 执行:
{ "scripts": { "dev": "vite", "build": "vite build", "test": "vitest" } }
npm run dev 就相当于执行 vite。这是日常开发最高频的字段。
项目运行时需要的第三方包,执行 npm install <包名> 时默认写进这里。比如你的代码里 import axios 了,axios 就该放这里。
只在开发阶段用到的包,比如构建工具、测试框架、类型定义。执行 npm install -D <包名> 写进这里。这类包不会被打包进最终产物。
| dependencies | devDependencies | |
|---|---|---|
| 用途 | 运行时需要 | 仅开发时需要 |
| 例子 | axios、lodash | vite、eslint、typescript |
| 是否进生产产物 | 是 | 否 |
| 安装命令 | npm install xxx |
npm install -D xxx |
依赖版本前的符号表示允许的更新范围:
^1.6.0:允许升级到 1.x 的最新版(如 1.9.0),但不升到 2.0。~1.6.0:只允许升级到 1.6.x 的补丁版(如 1.6.5)。1.6.0:锁定精确版本,不自动升级。package.json 说到底就是一个 JSON 文件,所以它同样遵守 JSON 的语法规则——双引号、无注释、无尾逗号。如果你手改 package.json 后项目报错,多半是 JSON 格式写坏了,可以用 JSON 在线校验工具 粘贴检查,快速定位错误。