包管理npm
后端入门安装项目需要的代码包,并运行项目命令
npm 根据 package.json 安装项目需要的代码包,也能运行项目定义的脚本。操作前先确认位于项目根目录和包名正确;陌生依赖可能执行安装脚本,不要随意安装或用 sudo 绕过问题。
package.json · 清单
"react": "^19.0.0"
"vite": "^6.0.0"
"scripts": dev / build
npminstall
→
node_modules · 仓库
📦 react
📦 vite
📦 …共 42 个包
什么时候用
- package.json 是清单:项目叫什么、装了哪些包、能跑哪些命令package.json
"dependencies": react, vite
"scripts": dev, build清单:装了哪些包、能跑哪些命令 - npm install:照着清单把依赖全搬回来$ 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✎ 手动改下次 install,你的改动全被覆盖
- 不要把 node_modules 提交进 Git,它可以根据配置重新安装node_modules 380MBgit push →几百 MB 垃圾进仓库,该进 .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" }
}
1项目名name项目的名字和版本,发布、分享时用到
2依赖清单dependencies装了哪些包、什么版本;install 就照它搬货
3快捷命令scriptsnpm 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
包裹全部搬进 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 里的快捷命令,一条顶一串