npm安装和管理依赖的核心是分清用途、选对命令、管住lock文件;必须区分生产与开发依赖,提交package-lock.json确保环境可复现,升级需谨慎评估,CI应使用npm ci而非install。

用 npm 安装和管理第三方依赖,核心就三点:分清用途、选对命令、管住 lock 文件。不是装上就能跑,关键在“可控”和“可复现”。
明确依赖类型,安装时就写对位置
项目依赖必须区分运行时和开发时:
-
生产依赖(如 axios、lodash):项目上线后仍需运行,用
npm install axios或简写npm i axios,自动写入dependencies -
开发依赖(如 eslint、vite):只在本地写代码或构建时用,必须加
-D,例如npm install eslint -D,写入devDependencies - 严禁手动改
package.json的依赖字段——容易格式出错(比如 version 写成"1.0 "带空格),也绕过了 npm 的版本解析逻辑
依赖安装必须带 lock 文件,且要提交到 Git
package-lock.json 不是临时文件,它是还原一致环境的唯一依据:
- 每次
npm install都会生成或更新它,记录每个包的确切版本、下载地址、校验值 - 这个文件必须提交进 Git 主干分支,CI/CD 和其他同事才能还原一模一样的
node_modules - 禁止使用
npm install --no-package-lock,也别删了 lock 后重装——发现不一致时,应删掉node_modules再npm install
日常升级要查、要评、要指定,别直接 npm update
npm update 只适合小范围修补(patch),且受 ^ 或 ~ 版本前缀限制,不能跨主版本:
立即学习“Java免费学习笔记(深入)”;
- 先运行
npm outdated看哪些包可升、升到哪一级;再查对应包的 CHANGELOG,确认是否有破坏性变更 - 日常小升级:用
npm install lodash@4.18.2显式指定版本,npm 自动更新package.json和lock - 主版本升级(如 react@17 → @18):必须开新分支,同步改代码、补测试,再完整回归验证
- 安全漏洞:定期跑
npm audit --audit-level=moderate,按提示执行npm audit fix或人工复核后npm audit fix --force
CI 和本地都该用 npm ci 而非 npm install
npm ci 是为自动化流程设计的安装命令:
- 它跳过
package.json解析,只按package-lock.json精确安装,更快更稳 - CI 流程中必须用
npm ci,失败即中断,避免因本地习惯导致构建不一致 - 建议在 pre-commit 或 PR 检查中加入:拒绝提交
node_modules,确保.gitignore已声明该目录


















