学习鸿蒙-构建私有仓储

[复制链接]
发表于 2026-2-10 20:15:52 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
1.选择

鸿蒙提供ohpm-repo工具用于构建当地私有仓储
ohpm-repo下载

2.情况设置

安装node,ohpm-repo 支持 node.js 18.x 及以上版本
node最新版本下载

3.设置文件及运行

        1.解压 ohpm-repo 私仓工具包


        2.进入 ohpm-repo 解压目次的 conf 目次内,打开 config.yaml 设置文件

  1. ##### server configuration section #####
  2. listen: localhost:8088        # 建议修改为具体的ip/域名
  3. # listen:
  4. # - localhost:8088            # 监听本机环回地址
  5. # - http://localhost:8088     # 监听本机环回地址
  6. # - 0.0.0.0:8088              # 监听本机所有地址 (INADDR_ANY)
  7. # 协议可配置 http 或者 https,默认为 http
  8. # port: 1-65535(Window系统)/ 1024-65535(Linux或Mac系统)
  9. # 可选 (listen 为 https 协议时必须配置)
  10. https_key: ''                 # https 服务使用的 key 的路径  (不配置默认为'')
  11. https_cert: ''                # https 服务使用的 crt 的路径  (不配置默认为'')
  12. ##### server deploy root section #####
  13. deploy_root: ''                # 安装根目录 (不配置默认为 `<现有用户home目录>/ohpm-repo`),只支持绝对路径,且路径目录必须存在
  14. ##### server numeric limit section #####
  15. max_package_size: 300          # 上传包大小限制,单位是MB (0, 300],不配置默认为 300
  16. max_extract_size: 800          # 压缩包解压后大小限制,单位是MB ,不配置默认为 800
  17. max_extract_file_num: 30000    # 压缩包解压后文件个数限制,默认为30000个
  18. user_rate_limit: 100           # 用户访问频率控制,单位是次/s (0, 10000],不配置默认为 100
  19. fetch_timeout: 60              # 请求/响应的超时时间,单位是秒 (0, 3600],不配置默认为 60
  20. keep_alive_timeout: 60         # TCP 保持连接的超时时间,单位是秒 (0, 3600],不配置默认为 60
  21. api_timeout: 60                # api超时时间,单位是秒(0, 3600],不配置默认为 60
  22. upload_lock_hour: 24           # 下架某一三方包所有版本后,限时禁止同名三方包上传,单位是小时 (0, 168],不配置,默认为 24
  23. upload_max_times: 100          # 单用户24小时内上传次数限制 (0, 100000],不配置默认为 100
  24. operation_log_retention: 100   # 数据库中操作日志日志保留时间,单位是天,不配置默认为 100
  25. ##### metadata storage section #####
  26. ## 数据存储类型 filedb 和 mysql 二选一,不可都配置
  27. db:                         # 必须用 yaml 数组形式写法
  28.   type: filedb
  29.   config:                   # 如果想修改存储路径且保留旧的数据,则需要把旧路径下的数据文件迁移至新路径
  30.     path: ./db              # 本地数据存储路径,不配置默认为<deploy_root>/db;
  31. #db:                        # 必须用yaml数组形式写法
  32. #  type: mysql
  33. #  config:
  34. #    host: "localhost"      # 数据库主机地址
  35. #    port: 3306             # 数据库端口 (0,65535]
  36. #    username: root         # 数据库的用户名
  37. #    password: "password"   # 数据库的用户密码(请配置明文, 最终在部署目录中会转换为密文)
  38. #    database: "repo"       # 数据库名
  39. ##### storage section #####
  40. ## 文件存储类型fs,sftp 和 custom 三选一,不可多选。
  41. store:                               # 必须用 yaml 数组形式写法
  42.   type: fs
  43.   config:                            # 上传资源后如若要修改存储路径,则需要把旧路径下的数据迁移至新路径中
  44.     path: ./storage                  # 已上架三方库存储路径,不配置默认为 <deploy_root>/storage;
  45.     #server: http://localhost:8088   # 仓库下载链接地址,不配置取默认值
  46. # 文件存储类型为 sftp 时,最多配置三个 sftp
  47. #store:                               # 必须用 yaml 数组形式写法
  48. #  type: sftp                         # 当且仅当 db 的类型为 mysql 时,store 的类型才能为 sftp
  49. #  config:
  50. #    location:
  51. #      -
  52. #        name: test_one_sftp          # 主机名字名字不能与其他sftp配置重复
  53. #        host: "localhost"            # 主机地址
  54. #        port: 22                     # 主机端口 (0,65535]
  55. #        read_username: "read"        # 主机有读权限的用户名字
  56. #        read_password: "password"    # 主机有读权限的用户密码(请配置明文, 最终在部署目录中会转换为密文)
  57. #        write_username: "write"      # 主机有写权限的用户名字
  58. #        write_password: "password"   # 主机有写权限的用户密码(请配置明文, 最终在部署目录中会转换为密文)
  59. #        path: /source22              # 相对 sftp 根目录的文件路径,仅限/开头,且路径文件夹必须存在
  60. #      -
  61. #        name: test_two_sftp
  62. #        host: "localhost"
  63. #        port: 24
  64. #        read_username: "read"
  65. #        read_password: "password"
  66. #        write_username: "write"
  67. #        write_password: "password"
  68. #        path: /source24
  69. #    #server: http://localhost:8088   # 仓库下载链接地址,不配置取默认值
  70. #store:
  71. #  type: custom                                            # custom是自定义存储插件类型,自定义存储插件开发流程见指导文档
  72. #  config:
  73. #    export_name: CustomStorage                            # 插件export的类名
  74. #    plugin_path: plugins/CustomStorage.js                 # 插件的绝对路径或者相对于ohpm-repo软件包的路径,建议将插件放在软件包的plugins目录下
  75. #    custom_field: "test"                                  # 自定义字段,通过引入libs/common/getStorageConfigInfo.js的getStorageConfigInfo方法获取自定义字段的值
  76. #    #server: http://localhost:8088                        # 仓库下载链接地址,不配置取默认值
  77. ##### uplink section #####
  78. uplink_cache_path: ./uplink      # 缓存路径,不配置默认为 <deploy_root>/uplink
  79. uplink_cache_time: 168           # 远程包 metadata 缓存时间,单位为小时,默认 168 小时,取值范围为 (0, 8760]
  80. ##### log section #####
  81. logs_path: ./logs                # 日志日志路径,不配置默认为 <deploy_root>/logs
  82. ##### log level section #####
  83. # 日志日志级别: 级别由低到高分别是 all、trace、debug、info、warn、error、fatal、mark、off
  84. # run,operate 和 access 不配置或者配置错误,默认为 info
  85. loglevel_run: info
  86. loglevel_operate: info
  87. loglevel_access: info
  88. ##### auth plugin section #####
  89. # 可选项,自定义认证插件配置
  90. #auth_plugin:
  91. #  name: CustomAuth              # 认证插件的名字
  92. #  path: plugins/CustomAuth.js   # 插件的绝对路径或者相对于ohpm-repo软件包的路径,建议将插件放在软件包的plugins目录下
  93. ##### compatibleSdkVersion等兼容性字段检测日志等级 #####
  94. # 可选值:close、info、warn、error,默认:warn
  95. compability_log_level: warn
  96. ##### 是否允许下架被其他组件依赖的包 #####
  97. # 可选项:true,false, 默认:false
  98. allow_remove_depended_packages: false
  99. ##### 是否使用文件上传新接口 #####
  100. # 可选项:true,false, 默认:true
  101. allow_new_file_upload_api: true
复制代码
重要是修改

  • listen: <摆设ohpm-repo呆板的ip>:8088
  • deploy_root: '~/AppData/Roaming/Huawei/ohpm-repo'
3.运行

进入ohpm-repo工具包解压目次中的 bin 目次下,查抄情况是否ok,出现版本号为ok
  1. ohpm-repo -v
复制代码

进入ohpm-repo工具包解压目次中的 bin 目次下,实行安装下令
  1. ohpm-repo install
复制代码

这时在情况变量会增长deploy_root这个参数值

ohpm-repo安装乐成后,进入ohpm-repo工具包解压目次下的 bin 目次下,实行如下下令,启动 ohpm-repo:
  1. ohpm-repo start
复制代码
运行效果为下面图,则代表乐成


4.登录配景

http://localhost:8088/   (<摆设ohpm-repo呆板的ip>:8088)
ohpm-repo 初次启动时,默认创建一个管理员账号,账号名称:admin,暗码:12345Qq! ,必要更改暗码

修改后,登录

在堆栈管理可以看到堆栈名

5.三方库发布到私有仓储

        1.web配景发布

                在Web页面用管理员账号登录ohpm-repo私仓管理地点,在个人中心 > 堆栈管理中,点击管理三方包 > 上传三方包,包的后缀名必须为 .har 大概 .tgz。
                

        2. 设置项目私有仓储

        在用户目次下有.ohpm文件夹内里有.ohpmrc
  1. ### 仓库配置,支持配置多个地址,使用英文逗号分割
  2. registry=https://repo.harmonyos.com/ohpm/
  3. # registry=https://ohpm.openharmony.cn/ohpm/
  4. ## 支持配置含有group的仓库,优先匹配
  5. #@group1:registry=
  6. #@group2:registry=
  7. ### 代理配置
  8. #no_proxy=
  9. #http_proxy=
  10. #https_proxy=
  11. ### 证书校验配置
  12. ## 是否校验https仓库的证书,取值:true|false, default: true, 为true时需要配置ca_files证书路径
  13. strict_ssl=true
  14. #ca_files=
  15. ### 发布配置
  16. ## 因为registry支持配置多仓,所以此处需明确指定发布仓
  17. publish_registry=https://repo.harmonyos.com/ohpm/
  18. ## 用户发布三方库的发布id,从云端个人中心获取
  19. #publish_id=
  20. ## 用户私钥文件路径,公钥需在云端进行配置
  21. #key_path=
  22. ### 缓存路径, 默认在用户目录下的.ohpm/cache
  23. #cache=
  24. ### 日志级别, 取值:debug|info|warn|error, default: info
  25. log_level=info
  26. ### 网络请求超时时间, 单位ms, 默认为60s
  27. fetch_timeout=60000
复制代码
        设置registry地点(用于拉取)和publish_registry(用于上传)

  • ohpm config set registry <设置的ohpm-repo私仓服务地点>/repos/ohpm 也可以ohpm install @ohos/lottie --registry <设置的ohpm-repo私仓服务地点>/repos/ohpm
  • ohpm config set publish_registry <ohpm-repo私仓管理地点>/repos/ohpm
  1. registry=http://192.168.158.99:8087/repos/ohpm
  2. strict_ssl=true
  3. publish_registry=http://192.168.158.99:8087/repos/ohpm
  4. log_level=info
  5. fetch_timeout=60000
复制代码
假如要发布,还必要设置rsa和publish_id

使用工具 ssh-keygen 天生公、私钥,必须输入passphrase(eg.123456)
  1. ssh-keygen -m PEM -t RSA -b 4096 -f <your_key_path>
  2. // eg.
  3. ssh-keygen -m PEM -t RSA -b 4096 -f D:\path\my_key_path
复制代码


登录 ohpm-repo 私仓管理地点,单击主页右上角的个人中心,新增公钥,将公钥文件(<your_key_path>.pub)的内容粘贴到公钥输入框中
打开下令行工具,实行如下下令设置私钥路径
  1. ohpm config set key_path <your_key_path>
复制代码
登录 ohpm-repo 私仓管理地点,单击主页右上角的个人中心,复制发布码

将发布码设置到 .ohpmrc 文件中,可实行如下下令
  1. ohpm config set publish_id <your_publish_id>
复制代码
        3.下令行发布

                静态共享包HAR包
  1. ohpm config set publish_registry <ohpm-repo私仓管理地址>/repos/ohpm
  2. ohpm publish demo.har
复制代码
大概
  1. ohpm publish demo.har --publish_registry <ohpm-repo私仓管理地址>/repos/ohpm
复制代码
                动态共享包 HSP 包
                        动态共享包 HSP 包不能直接发布在ohpm-repo内,必要先转化为 .tgz 包,转换方TGZ 包的发布流程同 HAR 划一。
  1. ohpm config set publish_registry <ohpm-repo私仓管理地址>/repos/ohpm
  2. ohpm publish demo.tgz
复制代码
大概
  1. ohpm publish demo.tgz --publish_registry <ohpm-repo私仓管理地址>/repos/ohpm
复制代码
组件上传后,在ohpm-repo



6.使用上传到私有仓储的库

        参考5.2 设置项目私有仓储,设置好registry
  1. ohpm config set registry <配置的ohpm-repo私仓服务地址>/repos/ohpm  或者
  2. ohpm install @ohos/lottie --registry <配置的ohpm-repo私仓服务地址>/repos/ohpm
复制代码

回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表