计算机知识篇
什么是包管理器
站在巨人的肩膀上
写代码时,你不需要从零开始造轮子。全世界的开发者已经写好了无数的工具包(Package),你只需要一行命令就能安装使用。
包管理器就是帮你下载、安装、更新、删除这些工具包的工具。
💡 类比:包管理器就像手机上的应用商店。你不需要自己写一个输入法,直接从商店下载安装就好了。
加载图表中...
npm — JavaScript 的包管理器
npm (Node Package Manager) 是 JavaScript/Node.js 生态中最常用的包管理器。
常用命令
# 初始化一个新项目(创建 package.json)
$ npm init -y
# 安装一个包
$ npm install react
$ npm install next
# 安装开发依赖(只在开发时需要)
$ npm install --save-dev typescript
# 安装 package.json 中列出的所有依赖
$ npm install
# 运行项目脚本
$ npm run dev
$ npm run build
# 卸载一个包
$ npm uninstall react-icons
package.json — 项目的"身份证"
{
"name": "my-project",
"version": "1.0.0",
"scripts": {
"dev": "next dev",
"build": "next build",
"start": "next start"
},
"dependencies": {
"next": "^15.0.0",
"react": "^19.0.0",
"react-dom": "^19.0.0"
},
"devDependencies": {
"typescript": "^5.0.0"
}
}
加载图表中...
node_modules — 依赖安装目录
运行 npm install 后,所有的依赖包会被下载到 node_modules 文件夹中。
⚠️ 重要:
node_modules文件夹通常非常大(几百MB),绝不应该提交到 Git。在.gitignore中添加node_modules/。
package-lock.json
这个文件记录了每个依赖包的精确版本号,确保团队所有人安装的版本完全一致。
pip — Python 的包管理器
pip 是 Python 生态中的包管理器。
# 安装一个包
$ pip install requests
$ pip install flask
# 安装指定版本
$ pip install numpy==1.24.0
# 从 requirements.txt 安装所有依赖
$ pip install -r requirements.txt
# 查看已安装的包
$ pip list
# 导出当前环境的依赖列表
$ pip freeze > requirements.txt
# 卸载
$ pip uninstall requests
requirements.txt — Python 的依赖清单
flask==3.0.0
requests==2.31.0
numpy>=1.24.0
openai==1.3.0
npm vs pip 对照表
| 功能 | npm (JavaScript) | pip (Python) |
|---|---|---|
| 安装包 | npm install axios | pip install requests |
| 安装所有依赖 | npm install | pip install -r requirements.txt |
| 卸载包 | npm uninstall axios | pip uninstall requests |
| 依赖配置文件 | package.json | requirements.txt |
| 锁定版本 | package-lock.json | — |
| 包的存储位置 | node_modules/ | 系统Python目录 |
| 运行脚本 | npm run dev | python app.py |
版本号的含义
包的版本号通常遵循语义化版本(SemVer)规范:
主版本.次版本.补丁版本
15 . 3 . 0
| 版本变化 | 含义 | 示例 |
|---|---|---|
| 主版本 (Major) | 有重大变更,可能不兼容 | 15.0.0 → 16.0.0 |
| 次版本 (Minor) | 新增功能,向下兼容 | 15.0.0 → 15.1.0 |
| 补丁版本 (Patch) | 修复bug | 15.0.0 → 15.0.1 |
^15.0.0 → 允许 15.x.x(锁定主版本)
~15.0.0 → 允许 15.0.x(锁定主+次版本)
15.0.0 → 精确锁定这个版本
小结
- 包管理器帮你安装和管理第三方工具包
- JavaScript 用 npm,Python 用 pip
package.json和requirements.txt记录项目依赖node_modules/不要提交到 Git- 理解版本号有助于解决兼容性问题