dependencies 为生产依赖,项目运行必需;devdependencies 为开发依赖,仅用于开发/构建。安装时须用 npm install axios(生产)或 npm install eslint -d(开发),严禁手动编辑 package.json,必须提交 package-lock.json 并用 npm ci 确保环境一致。

明确依赖分类与写入规则
团队必须统一区分 dependencies(运行时必需)和 devDependencies(仅开发/构建用)。安装时严格使用对应命令:
– 生产依赖:直接 npm install axios
– 开发依赖:必须加 --save-dev 或简写 -D,如 npm install eslint -D
避免手动编辑 package.json,防止字段错位或版本格式不合法(例如含空格、大写字母的 name,或非法 version 如 "1.0")。
强制提交 lock 文件并禁止跳过校验
package-lock.json 必须提交到 Git 主干分支,且禁止在 CI/CD 或本地执行 npm install --no-package-lock 或删除 lock 后重装。它不是“临时文件”,而是保障所有环境(开发机、测试机、CI runner、生产部署)还原完全一致依赖树的唯一依据。若发现 lock 文件与 node_modules 不一致,应删除 node_modules 后重新运行 npm install,而非手动修改 lock。
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
升级流程需分场景执行,禁用无脑 update
npm update 仅适用于小范围修补(patch)或次要(minor)升级,且受 ^ 或 ~ 约束,不会跨主版本。团队应约定:
– 日常维护:先运行 npm outdated 查看可升级项,评估变更日志后再逐个升级,如 npm install lodash@4.18.2
– 主版本升级(如 react@17 → @18):必须新建特性分支,显式指定版本,同步更新适配代码,并通过完整回归测试
– 安全修复:定期执行 npm audit --audit-level=moderate,按提示用 npm audit fix 或 npm audit fix --force(后者需人工复核)
建立自动化守门机制
在 CI 流程中加入检查环节:
– 检查 package-lock.json 是否被修改但未提交(git diff --exit-code package-lock.json)
– 运行 npm ci(非 npm install)确保依赖安装严格按 lock 执行,失败即中断构建
– 添加 pre-commit hook 或 PR check,拒绝包含 node_modules 的提交,且要求 .gitignore 中已声明该目录
– 可选:引入 npm-check-updates 定期扫描大版本机会,但结果仅作评估报告,不自动合并
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










