/unpub

Self-hosted private Dart Pub server for Enterprise

Primary LanguageDartMIT LicenseMIT

Unpub

本项目fork修改自字节的unpub,主要用于内部的packages的发布下载及仓库页面的展示;

使用

发布

对于要发布的package的pubspec.yaml,需要填写以下相关信息

# 名称
name: tuya_test_flutter 
# 描述
description: A Flutter package for test private pub.dev.
# 版本号
version: 0.0.6
# 作者的邮箱,这里强制要求是以@tuya.com结尾的企业邮箱
author: xc.fang@tuya.com
# 私有pub的地址
publish_to: http://some-package-server.com:port
# 项目的主页地址
homepage: https://google.com

在需要发布的package根项目下,使用如下命令

 // http://pubHost:port替换为仓库地址
 flutter packages pub publish --server=http://some-package-server.com:port   

需要注意如下要点:

  • 发布时会检测此目录下是否存在pubspec.yaml,所以需要到pubspec.yaml运行上述命令
  • 发布时后台会校验项目是否已tuya_前缀开头,作者字段(author)是否是以@tuya.com为结尾

依赖

在要依赖此package的项目的pubspec.yaml中,添加如下代码进行依赖

dependencies:
  tuya_test_flutter:
    hosted:
      name: tuya_test_flutter
      url: http://some-package-server.com
    version: ^1.0.0

然后使用如下命令进行拉取

flutter packages get

项目结构

项目当中有2个子项目,其中unpub是服务端代码,数据存储用的是Mongodb,HTTP服务器框架使用的是shelf;

unpub_web是基于AngularDart的Web应用。

对应的UML图如下所示

unpub

开发调试

前端(unpub_web)

当你对unpub_web这个模块的代码进行修改完毕之后,直接运行项目根目录下的pre_publish.sh然后在对应的控制台上输出的网址进行查看。

服务端(unpub)

当你对unpub这个模块的代码进行修改之后,需要运行此模块下面的run_unpub.sh或者手动运行以下命令

dart 项目根目录/unpub/example/main.dart

然后在对应的控制台上输出的网址进行查看。