npm是前端依赖管理的事实标准,核心是package.json声明依赖、node_modules为运行产物、package-lock.json保障安装确定性;初始化需npm init -y生成合规package.json,安装须按用途分dependencies/devDependencies,更新应通过npm outdated识别并显式指定版本,协作部署必须提交package-lock.json并用npm ci还原。

npm 是前端项目依赖管理的事实标准,它不只负责“装包”,而是贯穿初始化、开发、构建、协作、部署全过程的依赖操作系统。核心在于理解 package.json 是声明中心、node_modules 是运行时产物、package-lock.json 是安装确定性的保障。
初始化:从空目录到可协作的项目基线
必须执行 npm init -y(或交互式 npm init),生成标准 package.json。这一步不是可选操作——没有它,团队成员无法还原一致环境,CI 流水线会直接失败。生成后需检查:
• name 不能含大写字母或空格
• version 必须是合法语义化版本(如 1.0.0)
• 不要手动创建或编辑 package.json,避免引号风格、字段缺失等隐性错误
安装依赖:明确用途,精准写入对应字段
安装不是“一股脑全进 dependencies”,必须按实际使用阶段归类:
• 运行时必需(如 react、axios):用 npm install react,自动写入 dependencies
• 仅开发/构建/测试用(如 vite、eslint、@types/react):用 npm install vite -D,写入 devDependencies
• 绝对不要用 -g 安装项目级依赖(如 npm install sass -g),全局包无法被项目代码导入,且破坏环境一致性
Java项目代码review工具。分析Git变更+完整调用链路上下文,推断业务需求,进行多维度评分和分类汇总,生成完整PRD文档。包含细粒度Java代码审查清单(Null安全、异常处理、Streams、并发、equals/hashCode、资源管理、API设计、性能、MyBatis/ORM、事务边界、SQL/DD...
更新与锁定:控制升级范围,避免意外破坏
更新不是无脑 npm update:
• npm update 只在 ^ 或 ~ 版本范围内升级(如 "lodash": "^4.17.21" 最多升到 4.x.x,不会跳到 5.0.0)
• 检查哪些包可安全升级:运行 npm outdated,它会清晰列出当前版、期望范围、最新版
• 升级主版本(有 breaking change 风险)必须显式指定:npm install lodash@latest 或 npm install lodash@5.0.0
• 精确锁定版本:用 npm install axios@1.6.7,package.json 中将写死 "axios": "1.6.7"
立即学习“Java免费学习笔记(深入)”;
协作与部署:靠 lock 文件,不靠 node_modules
团队和 CI 环境依赖还原完全基于两个文件:
• package.json:声明“需要什么”
• package-lock.json:记录“装了哪个确切版本及其全部子依赖哈希”,它不可删除、不可手动修改
• Git 提交时:必须提交 package-lock.json,但必须忽略 node_modules
• CI 场景推荐用 npm ci(不是 npm install):它跳过解析,直接按 lock 文件安装,更快、更确定、更防篡改

















