第 5 章 管理 IDE 扩展


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

5.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 注册表的嵌入式实例。

5.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
    Copy to Clipboard Toggle word wrap
    1
    例如: openVSXURL: "https://open-vsx.org"
    重要
    • 在 air-gapped 环境中不建议使用 https://open-vsx.org,这会与互联网隔离。为了降低恶意软件入侵和未授权访问代码的风险,请使用带有策展的扩展集嵌入或自托管的 Open VSX registry。
    • 要在 plugin-registry pod 中选择嵌入的 Open VSX registry 实例,请使用 openVSXURL: ''您可以自定义包含的扩展的列表
    • 如果从机构的集群内部访问 URL,您也可以将 openVSXURL 指向独立 Open VSX registry 实例的 URL,且不会被代理阻止。

您可以在嵌入式 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>
      Copy to Clipboard Toggle word wrap
      提示

      如果扩展只能从 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 实例:

      重要

      对于 IBM Power (ppc64le)和 IBM Z (s390x),自定义插件 registry 应该在对应的架构本地构建。

      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
    Copy to Clipboard Toggle word wrap
  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
Copy to Clipboard Toggle word wrap

+

  1. 进入插件 registry 子模块:
cd devspaces/dependencies/che-plugin-registry/
Copy to Clipboard Toggle word wrap

+

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

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

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

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

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

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

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

    spec:
      components:
        pluginRegistry:
          deployment:
            containers:
              - image: quay.io/<username/plugin_registry:custom>
          openVSXURL: ''
    Copy to Clipboard Toggle word wrap

验证

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

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat