Pub - Dart/Flutter 包管理器 #
什么是 Pub? #
Pub 是 Dart 编程语言的官方包管理器,由 Dart 团队开发维护。它集成了包管理、依赖解析、版本控制、脚本运行等功能于一体,是 Dart 和 Flutter 开发不可或缺的核心工具。
核心功能 #
| 功能 | 描述 |
|---|---|
| 包管理 | 创建、配置和管理 Dart/Flutter 项目 |
| 依赖管理 | 声明、下载和管理外部依赖包 |
| 版本控制 | 语义化版本管理和约束解析 |
| 脚本运行 | 执行 Dart 脚本和自定义命令 |
| 包发布 | 将包发布到 pub.dev 仓库 |
| 缓存管理 | 本地包缓存和离线支持 |
文档结构 #
本指南按以下结构组织,适合初学者循序渐进学习:
第一阶段:基础入门 #
| 主题 | 描述 | 文档链接 |
|---|---|---|
| Pub 简介 | Pub 的历史、特点、核心概念 | intro.md |
| 安装与配置 | 安装 Dart SDK、环境配置、镜像源设置 | installation.md |
| 基本命令 | 常用命令详解:get、add、upgrade、run | basic-commands.md |
| pubspec.yaml 详解 | 项目配置文件完整解析 | pubspec.md |
第二阶段:核心功能 #
| 主题 | 描述 | 文档链接 |
|---|---|---|
| 依赖管理 | 添加、更新、管理项目依赖 | dependencies.md |
| 发布包 | 发布到 pub.dev 的完整流程 | publishing.md |
第三阶段:进阶与最佳实践 #
| 主题 | 描述 | 文档链接 |
|---|---|---|
| 高级特性 | 私有仓库、依赖覆盖、缓存管理 | advanced.md |
快速开始 #
创建新项目 #
bash
# 创建 Dart 项目
dart create my_project
# 创建 Flutter 项目
flutter create my_app
# 进入项目目录
cd my_project
项目结构 #
text
my_project/
├── pubspec.yaml # 项目配置文件
├── pubspec.lock # 依赖锁定文件(自动生成)
├── lib/
│ └── main.dart # 程序入口
├── bin/
│ └── my_project.dart # 可执行文件
├── test/ # 测试文件
└── .dart_tool/ # 工具缓存(自动生成)
基本命令 #
bash
# 获取依赖
dart pub get
# 添加依赖
dart pub add http
# 运行项目
dart run
# 运行测试
dart test
# 升级依赖
dart pub upgrade
# 发布包
dart pub publish --dry-run
为什么选择 Pub? #
相比其他语言的包管理器 #
| 特性 | Pub (Dart) | npm (Node.js) | pip (Python) |
|---|---|---|---|
| 锁定文件 | ✅ pubspec.lock | ✅ package-lock.json | ❌ 无 |
| 语义化版本 | ✅ 原生支持 | ✅ 支持 | ⚠️ 基本支持 |
| 私有仓库 | ✅ 支持 | ✅ 支持 | ✅ 支持 |
| 缓存管理 | ✅ 内置 | ✅ 内置 | ⚠️ 需配置 |
| 脚本运行 | ✅ dart run | ✅ npm run | ❌ 无 |
Pub 的优势 #
- 一体化体验:与 Dart SDK 紧密集成
- 确定性构建:pubspec.lock 确保团队构建一致
- 丰富的生态系统:pub.dev 拥有超过 4 万个包
- 优秀的性能:智能缓存、并行下载
- 安全可靠:内置安全审计、依赖验证
学习路径建议 #
text
入门阶段
├── 阅读 Pub 简介 → 了解基本概念
├── 完成安装配置 → 搭建开发环境
├── 学习基本命令 → 掌握日常操作
└── 理解 pubspec.yaml → 学会项目配置
进阶阶段
├── 掌握依赖管理 → 管理项目依赖
├── 学习版本约束 → 理解语义化版本
└── 发布包 → 分享你的代码
高级阶段
├── 使用高级特性 → 定制构建流程
└── 遵循最佳实践 → 提升开发效率
常用资源 #
- 官方文档
- pub.dev - Dart 包仓库
- Dart 官网
- Flutter 官网
开始学习 #
准备好开始了吗?从 Pub 简介 开始你的 Pub 学习之旅!
最后更新:2026-03-28