2.2. 将第三方插件打包并发布为动态插件


在导出第三方插件 后,您可以将派生的软件包打包成以下支持的格式之一:

  • 开放容器项目(OCI)镜像(推荐)
  • TGZ 文件
  • JavaScript 软件包

    重要

    导出的动态插件软件包必须仅发布到私有 NPM registry。

2.2.1. 使用动态软件包创建 OCI 镜像

先决条件

流程

  1. 导航到插件的根目录(而不是 dist-dynamic 目录)。
  2. 运行以下命令将插件打包到 OCI 镜像中:

    打包导出的第三方插件的命令示例

    npx @red-hat-developer-hub/cli@latest plugin package --tag quay.io/example/image:v0.0.1
    Copy to Clipboard Toggle word wrap

    在上一命令中,--tag 参数指定镜像名称和标签。

  3. 运行以下命令之一将镜像推送(push)到 registry:

    使用 podman 将镜像推送到 registry 的命令示例

    podman push quay.io/example/image:v0.0.1
    Copy to Clipboard Toggle word wrap

    使用 docker 将镜像推送到 registry 的命令示例

    docker push quay.io/example/image:v0.0.1
    Copy to Clipboard Toggle word wrap

    package-dynamic-plugins 命令的输出提供了插件的路径,可在 dynamic-plugin-config.yaml 文件中使用。

2.2.2. 使用动态软件包创建 TGZ 文件

先决条件

流程

  1. 进入 dist-dynamic 目录。
  2. 运行以下命令来创建 tgz 归档:

    创建 tgz 归档的命令示例

    npm pack
    Copy to Clipboard Toggle word wrap

    您可以使用-- json 标志从 npm pack 命令的输出中获取完整性哈希,如下所示:

    获取 tgz 归档的完整性哈希值的命令示例

    npm pack --json | head -n 10
    Copy to Clipboard Toggle word wrap

  3. 在 RHDH 实例可访问的 Web 服务器上托管存档,并在 dynamic-plugin-config.yaml 文件中引用其 URL,如下所示:

    dynamic-plugin-config.yaml 文件示例

    plugins:
      - package: https://example.com/backstage-plugin-myplugin-1.0.0.tgz
        integrity: sha512-<hash>
    Copy to Clipboard Toggle word wrap

  4. 运行以下命令来打包插件:

    打包动态插件的命令示例

    npm pack --pack-destination ~/test/dynamic-plugins-root/
    Copy to Clipboard Toggle word wrap

    提示

    要使用 OpenShift Container Platform 上的 HTTP 服务器创建插件 registry,请运行以下命令:

    在 OpenShift Container Platform 中构建和部署 HTTP 服务器的命令示例

    oc project my-rhdh-project
    oc new-build httpd --name=plugin-registry --binary
    oc start-build plugin-registry --from-dir=dynamic-plugins-root --wait
    oc new-app --image-stream=plugin-registry
    Copy to Clipboard Toggle word wrap

  5. 通过编辑 dynamic-plugin-config.yaml 文件,将 RHDH 配置为使用来自 HTTP 服务器的插件:

    在 RHDH 中使用打包插件的示例配置

    plugins:
      - package: http://plugin-registry:8080/backstage-plugin-myplugin-1.9.6.tgz
    Copy to Clipboard Toggle word wrap

2.2.3. 使用动态软件包创建 JavaScript 软件包

警告

派生的动态插件 JavaScript 软件包不得发布到公共 NPM 注册表。如果需要发布至 NPM 注册表,请使用私有 registry。

先决条件

流程

  1. 进入 dist-dynamic 目录。
  2. 运行以下命令,将软件包发布到您的私有 NPM registry:

    将插件软件包发布到 NPM registry 的命令示例

    npm publish --registry <npm_registry_url>
    Copy to Clipboard Toggle word wrap

    提示

    在运行 export 命令前,您可以在 package.json 文件中添加以下内容:

    package.json 文件示例

    {
      "publishConfig": {
        "registry": "<npm_registry_url>"
      }
    }
    Copy to Clipboard Toggle word wrap

    如果在导出动态插件后修改 publishConfig,请重新运行 plugin export 命令,以确保包含正确的配置。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat