npm
你可能会说
AI 让我先“装依赖”,敲了一行命令就哗啦啦下载一堆东西,这是在干嘛?
npm 是给 JavaScript 项目下载所需工具、运行项目命令的工具。项目会列出需要下载哪些工具和版本,npm 按这份清单下载到本机,也能启动项目或执行检查。下载时可能运行额外脚本,所以要先确认自己位于正确项目目录,并了解陌生依赖会做什么。
也常被叫作包管理Node 包管理
什么时候用
- package.json 是清单:记录项目名称、依赖范围和可运行脚本package.json
"dependencies": react, vite
"scripts": dev, build清单:装了哪些包、能跑哪些命令 - 克隆 Clone 项目后运行 npm install,按 package.json 和锁文件恢复声明的依赖$ npm install⸨░░░░░░⸩ idealTreeadded 42 packages in 6s
- npm run dev:跑 scripts 里写好的快捷命令$ npm run dev> vite✓ Ready in 1.2s
- 克隆别人的项目先 install:根据清单和锁文件重建依赖目录☁️ 克隆项目→ install →📦 仓库重建
什么时候不用
- 不要直接修改 node_modules,重新安装依赖时改动会丢失📁 node_modules / react✎ 手动改重新安装依赖时,这类本地改动通常会被替换
- 不要把 node_modules 提交进 Git,它可以根据配置重新安装node_modules 380MBgit push →大量可重新安装的依赖进入仓库,应由 .gitignore 排除
- 删掉 package.json:依赖和脚本声明丢失,其他环境无法按项目配置重建📄 package.json🗑
- 没有定位报错原因就安装多个包,会增加依赖冲突和排查范围dependencies:
react, vue, jquery, lodash, moment, axios, fetch-huh…
组成结构 · Anatomy
{
"name": "my-first-page",
"dependencies": { "react": "^19.0.0" },
"scripts": { "dev": "vite", "build": "vite build" }
}
项目的名字和版本,发布、分享时用到
装了哪些包、什么版本;install 就照它搬货
npm run dev 跑的就是这里写的命令
常见变体 · Variants
安装install
npm install
装新包,或重建 node_modules
运行脚本run
npm run dev
执行 scripts 里的快捷命令
卸载uninstall
npm uninstall lodash
包用不上了,从清单划掉
锁版本lockfile
package-lock.json
团队统一版本,别手动改它
典型使用场景
package.json 清单示例
npm install 安装依赖
$ npm install
⸨████████░░⸩ reify: react
added 42 packages in 6s
依赖会按 package.json 和锁文件安装到 node_modules
不直接修改 node_modules
npm run dev 启动开发服务
$ npm run dev
> my-first-page@0.1.0 dev
✓ Ready in 1.2s → http://localhost:3000
scripts 里的快捷命令,一条顶一串
延伸阅读 · 权威出处