Node.js 词条目录
前端Wiki/词条/npm 与 package.json

npm 与 package.json

定义Node 的包管理器与项目清单文件:声明依赖、脚本与元信息

package.json 是项目的身份证:name/version/description 是元信息,dependencies(生产依赖)与 devDependencies(开发依赖)声明第三方包,scripts 定义命令别名(npm run dev → 实际命令)。npm install 时按 semver 版本范围(^1.2.3 允许 1.x.x、~1.2.3 允许 1.2.x)解析依赖并写回 package-lock.json 锁定完整依赖树。

dependencies vs devDependencies:前者打进生产包(如 vue、axios),后者只在开发/构建时需要(如 vite、eslint)。语义化版本(semver)分 主版本.次版本.补丁:主版本升级可能有破坏性变更,^ 默认只升到次版本。^ 会带来「.lock 文件不一致」问题——CI 与团队必须提交 lock 文件,禁止各自解析出不同的依赖树。

JavaScript
// package.json
{
  "name": "my-app",
  "version": "1.0.0",
  "type": "module",           // ★ ESM 项目标记
  "scripts": {
    "dev": "vite",
    "build": "vite build",
    "lint": "eslint src"
  },
  "dependencies": {
    "vue": "^3.4.0",          // 生产依赖
    "axios": "^1.6.0"
  },
  "devDependencies": {
    "vite": "^5.0.0",         // 构建依赖
    "eslint": "^8.50.0"       // 只在开发时用
  },
  "engines": { "node": ">=18" }
}

// 常用命令
// npm install lodash         装到 dependencies
// npm i -D vitest            装到 devDependencies(-D)
// npm run dev                执行 scripts.dev
⚠ 常见误区
🔗 相关词条pnpm 包管理器Tree ShakingCommonJS 与 ESM
← 返回来源章节npm 与 package.json