package.json 详解:常见字段一篇看懂

每个 Node.js 项目的根目录都有一个 package.json,它是项目的「身份证」和「说明书」——记录项目信息、依赖包、脚本命令等。本文梳理最常见的几个字段。

一个典型的 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"
  }
}

核心字段说明

name 和 version

项目的名称和版本号,二者共同构成一个包的唯一标识。发布到 npm 时,name 不能和已存在的包重名。

scripts(脚本命令)

定义可以运行的命令,用 npm run <脚本名> 执行:

{ "scripts": { "dev": "vite", "build": "vite build", "test": "vitest" } }

npm run dev 就相当于执行 vite。这是日常开发最高频的字段。

dependencies(生产依赖)

项目运行时需要的第三方包,执行 npm install <包名> 时默认写进这里。比如你的代码里 import axios 了,axios 就该放这里。

devDependencies(开发依赖)

只在开发阶段用到的包,比如构建工具、测试框架、类型定义。执行 npm install -D <包名> 写进这里。这类包不会被打包进最终产物。

dependencies 和 devDependencies 的区别

dependencies devDependencies
用途 运行时需要 仅开发时需要
例子 axios、lodash vite、eslint、typescript
是否进生产产物 是 否
安装命令 npm install xxx npm install -D xxx

版本号里的 ^ 和 ~

依赖版本前的符号表示允许的更新范围:

package.json 本质就是个 JSON

package.json 说到底就是一个 JSON 文件,所以它同样遵守 JSON 的语法规则——双引号、无注释、无尾逗号。如果你手改 package.json 后项目报错,多半是 JSON 格式写坏了,可以用 JSON 在线校验工具 粘贴检查,快速定位错误。

延伸阅读