第 4 章 管理 IDE 扩展


IDE 使用扩展或插件来扩展其功能,并且在 IDE 之间管理扩展的机制会有所不同。

4.1. Microsoft Visual Studio Code 的扩展 - 开源

要管理扩展,此 IDE 使用其中一个 Open VSX registry 实例:

  • 在 OpenShift Dev Spaces 的 plugin-registry pod 中运行 Open VSX registry 的嵌入式实例,以支持 air-gapped、offline 和 proxy-restricted 环境。嵌入的 Open VSX 注册表仅包含 open-vsx.org 上发布的扩展的子集。此子集 可自定义
  • 通过互联网访问的公共 open-vsx.org 注册表。
  • 部署到可从 OpenShift Dev Spaces 工作区 Pod 访问的网络上的独立 Open VSX registry 实例。

默认为 Open VSX 注册表的嵌入式实例。

4.1.1. 选择 Open VSX 注册表实例

默认为 Open VSX 注册表的嵌入式实例。

如果默认的 Open VSX registry 实例不是您需要的,您可以选择以下实例之一:

  • https://open-vsx.org 中的 Open VSX registry 实例需要访问互联网。
  • 部署到可从 OpenShift Dev Spaces 工作区 Pod 访问的网络上的独立 Open VSX registry 实例。

流程

  • 编辑 CheCluster 自定义资源中的 openVSXURL 值:

    spec:
      components:
        pluginRegistry:
          openVSXURL: "<url_of_an_open_vsx_registry_instance>" 1
    1
    例如: openVSXURL: "https://open-vsx.org"
    提示
    • 要在 plugin-registry pod 中选择嵌入的 Open VSX registry 实例,请使用 openVSXURL: ''您可以自定义包含的扩展的列表
    • 如果从机构的集群内部访问 URL,您也可以将 openVSXURL 指向独立 Open VSX registry 实例的 URL,且不会被代理阻止。

4.1.2. 在嵌入式 Open VSX registry 实例中添加或删除扩展

您可以在嵌入式 Open VSX registry 实例中添加或删除扩展。这会生成 Open VSX 注册表的自定义构建,可在您组织的工作区中使用。

提示

要在 OpenShift Dev Spaces 更新后获取最新的安全修复,请基于 latest 标签或 SHA 重建容器。

流程

  1. 获取每个所选扩展的发布程序和扩展名称:

    1. Open VSX 注册表网站 中找到扩展,并复制扩展列表页面和扩展名版本的 URL。
    2. 从复制的 URL 中提取 & lt;publisher > 和 <extension> name:

      https://open-vsx.org/extension/<publisher>/<name>
      提示

      如果扩展只能从 Microsoft Visual Studio Marketplace 提供,但没有 Open VSX,您可以要求扩展发布程序,根据 这些说明open-vsx.org 上发布,可能会使用此 GitHub 操作

      如果扩展发布者不可用或不希望将扩展发布到 open-vsx.org,且没有与扩展相对应的 Open VSX,考虑使用向 Open VSX 团队报告问题

  2. 构建自定义插件 registry 镜像并更新 CheCluster 自定义资源:

    提示
    • 在构建过程中,将验证每个扩展是否与 OpenShift Dev Spaces 中使用的 Visual Studio Code 版本兼容。
    1. 使用 OpenShift Dev Spaces 实例:

      1. 以管理员身份登录到 OpenShift Dev Spaces 实例。

创建新的 Red Hat Registry Service Account 并复制用户名和令牌。

  1. 使用插件 registry 存储库 启动工作区。
  2. 打开一个终端,再签出与 OpenShift Dev Spaces 版本对应的 Git 标签(例如,devspaces-3.15-rhel-8):

    git checkout devspaces-$PRODUCT_VERSION-rhel-8
  3. 打开 openvsx-sync.json 文件并添加或删除扩展。
  4. 执行 1。登录到工作区中的 registry.redhat.io 任务(Terminal Run Task…​ devfile 1。登录 registry.redhat.io,并登录到 registry.redhat.io
  5. 执行 2。build 和 Publish a Custom Plugin Registry 任务在工作区(Terminal Run Task…​ devfile 2 中。构建和发布自定义插件 registry。
  6. 执行 3。将 Che 配置为使用 Custom Plugin Registry 任务(Terminal Run Task…​ devfile 3。配置 Che 以使用自定义插件 Registry。

    1. 使用 Linux 操作系统:

      提示
      • Podman 和 NodeJS 版本 18.20.3 或更高版本应该安装到系统中。
  7. 下载或分叉并克隆 Dev Spaces 存储库
git clone https://github.com/redhat-developer/devspaces.git

+

  1. 进入插件 registry 子模块:
cd devspaces/dependencies/che-plugin-registry/

+

  1. 签出与 OpenShift Dev Spaces 版本对应的标签(如 devspaces-3.15-rhel-8):

    git checkout devspaces-$PRODUCT_VERSION-rhel-8
  2. 创建新的 Red Hat Registry Service Account 并复制用户名和令牌。
  3. 登录到 registry.redhat.io

    podman login registry.redhat.io
  4. 对于需要添加或删除的每个扩展,编辑 openvsx-sync.json 文件

    • 要添加扩展,请将发布程序、名称和扩展版本添加到 openvsx-sync.json 文件中。
    • 要删除扩展,请从 openvsx-sync.json 文件中删除发布者、名称和扩展版本。
    • 使用以下 JSON 语法:

          {
              "id": "<publisher>.<name>",
              "version": "<extension_version>"
          }
      提示
      • 如果您有一个闭源扩展,或者只为机构内部使用创建的扩展,您可以使用自定义插件 registry 容器可访问的 URL 从 .vsix 文件添加扩展:

            {
                "id": "<publisher>.<name>",
                "download": "<url_to_download_vsix_file>",
                "version": "<extension_version>"
            }
      • 在使用资源之前,请阅读 Microsoft Visual Studio Marketplace 使用条款
  5. 构建插件 registry 容器镜像,并将其发布到容器 registry 中,如 quay.io

    1. $ ./build.sh -o <username> -r quay.io -t custom
    2. $ podman push quay.io/<username/plugin_registry:custom>
  6. 编辑您机构的集群中的 CheCluster 自定义资源以指向镜像(例如在 quay.io上)并保存更改:

    spec:
      components:
        pluginRegistry:
          deployment:
            containers:
              - image: quay.io/<username/plugin_registry:custom>
          openVSXURL: ''

验证

  1. 检查 plugin-registry pod 是否已重启并在运行。
  2. 重启工作区,并检查工作区 IDE 的 Extensions 视图中的可用扩展。
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.