Node.js 词条目录
前端Wiki/词条/lock 锁文件

lock 锁文件

定义锁定整棵依赖树确切版本的文件,保证团队与 CI 安装结果完全一致

package-lock.json 记录每个依赖以及其嵌套依赖的确切版本与下载地址,在 npm install 后自动生成。它存在的意义是可复现:同样的 package.json,在不同时间、不同机器上安装可能得到不同的传递依赖版本,lock 文件把整棵依赖钉死,让所有人装出来的依赖树逐位一致。

正确用法是把 package-lock.json 提交进仓库,CI 里用 npm ci 严格按 lock 文件安装——它比 install 更快也更干净;增删依赖一律走 npm 命令让工具自动同步两个文件。yarn 的对应物是 yarn.lock,pnpm 的对应物是 pnpm-lock.yaml,机制相同而格式各异。

JavaScript
// package-lock.json 关键片段(lockfileVersion 3)
{
  "name": "my-app",
  "lockfileVersion": 3,
  "packages": {
    "": { "dependencies": { "express": "^4.18.2" } },
    "node_modules/express": {
      "version": "4.19.2",
      "resolved": "https://registry.npmjs.org/express/-/express-4.19.2.tgz",
      "integrity": "sha512-..."
    }
  }
}

// 团队协作流程:提交 lock 文件,CI 用 npm ci 安装
// npm install      安装并把变更写回 lock
// npm ci           严格按 lock 安装,不改文件(推荐 CI 使用)
⚠ 常见误区
🔗 相关词条npm 与 package.jsonCommonJS:require 与 module.exports
← 返回来源章节读写文件