如何搭建团队私有Dart包仓库并配置pub拉取私有包?
搭建私有Dart Pub仓库并配置使用指南
一、选择私有Pub仓库方案
最直接的入门方案是使用官方提供的pub_server工具,它轻量易部署,完全满足团队内部包共享需求。如果需要更完善的权限管理和集成能力,也可以基于GitLab/GitHub Packages搭建,但pub_server是快速落地的首选。
二、搭建私有Pub仓库
1. 准备Dart环境
搭建仓库的机器和团队成员本地都需要安装Dart SDK。
2. 安装pub_server
在仓库机器上执行命令:
dart pub global activate pub_server
3. 启动私有仓库
执行以下命令启动,指定端口和持久化存储目录(确保目录有读写权限):
dart pub global run pub_server serve --port 8080 --database-dir ./team_pub_repo
--port:自定义仓库服务端口,比如8080--database-dir:指定包元数据和文件的存储目录,重启仓库后数据不会丢失
4. 配置权限验证(必做)
默认pub_server无权限限制,任何人都能上传/下载包,团队使用必须添加验证:
用Nginx做反向代理并配置Basic Auth:
- 安装Nginx,用
htpasswd命令创建密码文件(比如/etc/nginx/.htpasswd)并添加授权用户 - 修改Nginx配置,反向代理到仓库端口:
server { listen 80; server_name 你的仓库内网IP或域名; auth_basic "团队私有Pub仓库"; auth_basic_user_file /etc/nginx/.htpasswd; location / { proxy_pass http://localhost:8080; proxy_set_header Host $host; } }
- 重启Nginx,此时访问仓库需要输入用户名密码
三、配置本地Pub使用私有仓库
1. 全局配置(所有项目生效)
在终端执行:
dart pub config add repository team-pub-repo http://你的仓库地址:8080
如果配置了Basic Auth,可直接在URL中携带用户名密码(或执行命令时按提示输入):
dart pub config add repository team-pub-repo http://用户名:密码@你的仓库地址:8080
2. 项目级配置(仅当前项目生效)
在项目根目录的pubspec.yaml中,为特定私有包指定来源:
dependencies: 你的自定义包名: hosted: name: 你的自定义包名 url: http://你的仓库地址:8080 version: ^1.0.0
四、上传与拉取私有包
1. 上传包到私有仓库
在自定义包的根目录执行:
dart pub publish --server http://你的仓库地址:8080
按提示完成权限验证即可。注意每次更新包必须递增pubspec.yaml中的version字段。
2. 拉取私有包
在项目中添加依赖后,执行:
dart pub get
Pub会自动从配置的私有仓库拉取对应版本的包。
注意事项
- 确保私有仓库地址在团队内部网络可访问(内网IP或VPN)
- 定期备份
database-dir目录,防止数据丢失 - 包版本遵循语义化版本规范,避免版本冲突
内容的提问来源于stack exchange,提问作者Random Questions
相关产品推荐
相关产品推荐

