# 9.9:发布开源库

NPM 全称 Node Package Manager ,它是一个 NodeJS 包管理和分发工具,已经成为了非官方的发布 Node 模块(包)的标准, OpenHarmony 同样支持使用npm工具管理和分发js库,本节笔者以 MiniCanvas (opens new window) 为例简单介绍一下如何在 Gitee 上发布 OpenHarmony 应用的三方库。

# 9.9.1:发布开源库

  1. 创建 MiniCanvas 项目

    • 在本地创建 MiniCanvas 项目,打开 Dev Eco Studio ,点击 File -> New -> Create Project ,如下所示:

      9_9_1_1
    • 选中 Empty Ability 模板,点击 Next ,添加项目信息如下所示:

      9_9_1_2
    • 点击 Finish ,等待项目构建完成,打开 entery 目录下的 package.json 文件,如下所示:

      9_8_1_3

      📢:项目中依赖的第三方库都是在 dependencies 下配置的。

  2. 创建 MiniCanvas 模块

    • 右键项目名字 MiniCanvas ,依次点击 New -> Module ,如下所示:

      9_8_1_4
    • 模板选择 Static Library ,如下所示:

      9_9_1_5
    • 选择 Next ,填写 Module 信息, 如下所示:

      9_9_1_6
    • 点击 Finish ,在 MiniCanvas 模块下的 components 下,添加封装的 MiniCanvas 源码 mini_canvas.ets,然后修改 index.ets 文件,修改如下:

      9_8_1_7
    • 修改 MiniCanvas 模块下的 oh-package.json 文件,如下所示:

      9_8_1_8

      配置参数 name 表示组件库的名称, description 表示组件库的说明, version 表示当前组件库的版本, main 表示组件库的主文件, repository 表示组件库的仓库地址, license 表示组件库使用的开源协议,本样例使用的是 Apache-2.0 版本, dependencies 表示组件库所依赖的第三方库。

  3. 上传中心仓

    创建完毕后模块后,打包 MiniCanvas 模块并生成 har 压缩包,执行 ohpm publish 命令上传到中心仓库等待审核,上传命令如下所示:

    9_9_1_9

    审核结果如下所示:

    9_9_1_10

# 9.9.2:使用开源库

中心库审核完通过后,进入项目的 entry 目录,然后执行【ohpm i @nutpi/mini_canvas】命令即可。

  1. 安装开源库

    • 进入项目的 entry 目录,使用 ohpm i @nutpi/mini_canvas 命令添加库文件,执行结果如下所示:

      9_9_2_1
    • 命令执行完成后, oh-package.json 文件会自动添加 MiniCanvas 的依赖,如下所示:

      9_9_2_2
  2. 使用开源库

    • 引入MiniCanvas库

      import { ICanvas, MiniCanvas, Paint } from '@nutpi/mini_canvas';
      
      1
    • 使用MiniCanvas库

      build() {
        Column() {
          MiniCanvas({// 使用MiniCanvas库
            attribute: {
              width: this.delegate.calculateWidth(),
              height: this.delegate.calculateHeight(),
              clickListener: (event) => {
                this.delegate.onClicked(event.x, event.y);
              }
            },
            onDraw: (canvas) => {
              this.delegate.setCanvas(canvas);
              this.delegate.drawPieItem();
            }
          })
        }
        .size({width: "100%", height: "100%"})
      }
      
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18

      运行结果如下图所示

      9_9_2_3
(adsbygoogle = window.adsbygoogle || []).push({});
请作者喝杯咖啡

津公网安备 12011402001367号

津ICP备2020008934号-2

中央网信办互联网违法和不良信息举报中心

天津市互联网违法和不良信息举报中心