第 4 章 管理 IDE 扩展

IDE 使用扩展或插件来扩展其功能,管理扩展的机制因 IDE 而异。

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

要管理扩展,这个 IDE 使用以下 Open VSX registry 实例之一:

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

4.1.1. 选择 Open VSX registry 实例

如果从您的机构的集群解析,则 https://open-vsx.org 的 Open VSX registry 是默认设置。如果没有,则 OpenShift Dev Spaces plugin-registry pod 中的嵌入式 Open VSX registry 是默认设置。

如果默认的 Open VSX registry 实例不需要,您可以选择另一个 Open VSX registry 实例,如下所示:

流程

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

    spec:
      components:
        pluginRegistry:
          openVSXURL: "<url_of_an_open_vsx_registry_instance>"
    提示
    • 默认的 openVSXURL 值为 https://open-vsx.org
    • 要在 plugin-registry pod 中选择嵌入的 Open VSX registry 实例,请使用 openVSXURL: ''。有关如何自定义包含的扩展,请参见下一部分。
    • 如果可从您的机构集群中的 URL 访问其 URL,则您还可以将 openVSXURL 指向独立 Open VSX registry 实例的 URL,而不是被代理阻止。

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

您可以在 OpenShift Dev Spaces 部署的嵌入式 Open VSX registry 实例中添加或删除扩展,以支持离线和代理环境。

这将创建 Open VSX registry 的自定义构建,可在您的组织的工作区中使用。

提示

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

流程

  1. 下载或分叉并克隆 插件 registry 存储库
  2. 对于需要添加或删除的每个扩展,请编辑 openvsx-sync.json 文件

    • 如果在 open-vsx.org 上发布扩展,您可以使用 < published_by&gt ;. <unique_identifier & gt; 格式添加其扩展 ID。您可以在 open-vsx.org 上找到扩展列表页面的 id 详细信息。

          {
              "id": "<published_by>.<unique_identifier>"
          }
      提示

      open-vsx.org 上的最新扩展版本是默认值。或者,您可以在新 行中添加 "<extension_version> version": " " 以指定版本。

    • 如果扩展仅可用于 Microsoft Visual Studio Marketplace,但不适用于 Open VSX,您可以要求扩展发布发布者根据以下 说明在 open-vsx.org 上发布它,并可能使用此 GitHub 操作

      提示
      • 如果扩展发布者不可用或不希望将扩展发布到 open-vsx.org,且没有与扩展相对应的 Open VSX,考虑使用向 Open VSX 团队报告问题
      • 如果您有一个只针对公司内部使用的关闭源扩展或扩展,您可以使用自定义插件 registry 容器可访问的 URL 直接从 .vsix 文件添加扩展:

            {
                "id": "<published_by>.<unique_identifier>",
                "download": "<url_to_download_vsix_file>",
                "version": "<extension_version>"
            }
      警告

      请在使用其资源前阅读 Microsoft Visual Studio Marketplace使用条款

    • 您可以通过从 openvsx-sync.json 文件中删除扩展。
  3. 构建插件 registry 容器镜像并将其发布到类似 quay.io 的容器 registry:

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

    spec:
      components:
        pluginRegistry:
          deployment:
            containers:
              - image: quay.io/<username/plugin_registry:custom>
          openVSXURL: ''
  5. 检查 plugin-registry pod 是否已重启并正在运行。
  6. 重启工作区,并在工作区 IDE 的 Extensions 视图中检查可用的扩展。