npm
中级通用
npm 是 JavaScript 项目常用的包管理工具,也指它使用的包仓库。你可以用它安装别人发布的代码包、记录项目依赖并运行项目脚本,省去手动下载和整理文件的麻烦。
你可能会说:「我想给网站加一个现成的图表库,还想让队友拉下代码后能装好同样的依赖。」
读之前建议先了解
动手看看启动产品原型的本地预览
1
项目已配置预览脚本,但还没安装依赖。执行 npm run dev 时找不到 Vite,预览没能启动。
要点npm 在项目里帮你处理哪些事?
- 1
把外部代码装进项目里
比如你做后台报表要画图,可以用 npm 安装图表库。它会下载这个包及其需要的其他包;你的代码再通过导入语句使用它,而不是把库的源码复制进项目。
- 2
记录依赖和安装结果
package.json 记录项目声明了哪些依赖,锁文件记录具体安装版本。把这两个文件交给队友,大家就能按同一份记录安装;通常不用把下载好的依赖目录一起提交。
- 3
用脚本统一常见命令
项目可以在 package.json 里给启动、测试、构建等操作起名字。你运行 npm run build 时,npm 执行的是项目写好的构建脚本;它并不负责发明构建流程。
容易混淆的地方
npm 和 Node.js 常一起出现,但不是一回事:Node.js 是运行 JavaScript 的环境,npm 负责获取和管理项目依赖、运行脚本。npm 也不等于某个图表库;图表库是你通过 npm 安装的包。别人说「发到 npm」,通常指把包发布到 npm 使用的包仓库。
什么时候用
适合用
- 你在做 React 后台,需要加入图表、日期处理等现成代码包,并让团队共享依赖记录。
- 你和 AI Agent 接手一个已有的 Node.js 项目,需要按项目记录安装依赖,再运行测试或构建脚本。
- 你开发一个可供其他 JavaScript 项目复用的组件库,准备把它作为包发布和更新。
不适合用
- 你只做一个无需构建、也不引用外部代码包的静态页面,直接写 HTML 和 CSS 就够了。
- 你在维护纯 Python 项目,要安装 Python 依赖时,使用该项目选定的 Python 包管理工具。
- 你只是想让已完成的网站对外可访问,需要的是部署和网站托管,而不是靠 npm 完成上线。
练一练选一个答案,看看解释
你让 AI Agent 接手一个已有网站项目。仓库里有 package.json 和锁文件,同事希望在另一台机器上尽量按锁文件安装依赖,再运行项目测试。你会让 Agent 怎么做?
让 AI 帮你做复制给 AI Agent 直接用
请先查看这个项目的 package.json 和锁文件,确认它使用 npm 管理依赖。不要更换包管理工具;按锁文件安装依赖,运行已有的测试和构建脚本,并告诉我新增依赖的用途及改动了哪些依赖记录。