一、概念
npm 全称 Node Package Manager,是 Node.js 的官方包管理工具
二、核心作用
- 安装:你的项目需要某个功能(如解析 Excel、发邮件、做图表),不必自己从头写代码。打开命令行,执行 npm install 某个包名,npm 就会从它的官方仓库下载这个包及其所有依赖,放进你的项目里。
- 发布:如果你写了一个好用的工具库,可以通过 npm publish 命令,把它发布到 npm的公共仓库。全世界其他开发者就能通过 npm install 你的包名 来使用它。
- 管理版本与依赖:项目根目录下的 package.json文件就像一个"物料清单",记录了项目需要哪些包、每个包的版本。npminstall可以一键根据这个清单安装所有依赖。package-lock.json则锁定精确的版本号,确保团队或服务器上的安装结果完全一致。
三、关键文件
- package.json:项目清单。手工或通过 npm init
创建,记录了项目名称、版本、依赖包(dependencies)、开发依赖包(devDependencies)、可执行脚本(scripts)等信息。 - package-lock.json:精确锁定每个依赖包的具体版本号和下载地址,保证在不同电脑上安装的结果完全一致。
- node_modules 文件夹:实际存放下载的所有包代码的地方。通常体积大、层级深,不应上传到 Git(会写入 .gitignore)。
四、常用的 npm 命令
bash
命令 作用
npm init -y 快速创建 package.json
npm install 或 npm i 根据 package.json 安装所有依赖
npm install 包名 安装指定包,并记录到 dependencies
npm install -D 包名 安装开发依赖(测试、打包工具等),记录到 devDependencies
npm install -g 包名 全局安装(作为命令行工具使用)
npm uninstall 包名 卸载包
npm update 更新包到允许的最新版本
npm run 脚本名 执行 package.json 中 scripts 定义的命令
五、全局安装 vs 本地安装
bash
类型 存放位置 用途 例子
本地(默认) 项目下的 node_modules 项目运行时需要的库 lodash, axios
全局(-g参数) 系统目录 提供可在任何地方运行的命令行工具 npm, yarn, create-react-app
六、补充
- npm 无需单独安装,它会随着 Node.js 自动安装到电脑上。
- npx:npm 自带的小工具,用于临时执行某个包而无需全局安装,如npx create-react-app my-app。
- 不要直接修改 node_modules里的代码:所有修改都会在下次安装时丢失。如果需要改包,用 patch-package 或 fork 项目。
- package-lock.json 要提交到 Git:确保团队成员和服务器安装完全相同的版本。