npm (Node Package Manager) 是 Node.js 的默认包管理器,用于安装、管理和发布 JavaScript 包。
核心功能
npm 主要提供以下功能:
- 包管理:从 npm registry 下载和安装第三方包
- 依赖管理:自动处理包之间的依赖关系
- 版本控制:使用语义化版本管理包版本
- 脚本执行:通过 package.json 定义和运行项目脚本
- 包发布:将自定义包发布到 npm registry 供他人使用
工作原理
npm 的工作流程如下:
- 初始化项目:运行
npm init创建 package.json 文件 - 安装依赖:运行
npm install安装 package.json 中定义的依赖 - 依赖解析:npm 解析依赖树,确定需要安装的所有包及其版本
- 下载安装:从 npm registry 下载包到 node_modules 目录
- 锁定版本:生成 package-lock.json 记录精确的依赖版本
package.json 结构
json{ "name": "my-project", "version": "1.0.0", "description": "项目描述", "main": "index.js", "scripts": { "start": "node index.js", "test": "jest" }, "dependencies": { "express": "^4.18.0" }, "devDependencies": { "jest": "^29.0.0" } }
常用命令
npm install <package>:安装包npm install -g <package>:全局安装包npm install --save-dev <package>:安装为开发依赖npm update:更新依赖包npm uninstall <package>:卸载包npm run <script>:运行 package.json 中定义的脚本
依赖类型
- dependencies:生产环境依赖,应用运行时必需
- devDependencies:开发环境依赖,仅在开发时需要
- peerDependencies:同伴依赖,需要宿主项目提供
- optionalDependencies:可选依赖,安装失败不会中断
npm 通过 package.json 和 package-lock.json 文件确保项目依赖的一致性和可重现性,是现代 JavaScript 开发生态系统的核心工具。