第 4 章 管理 IDE 扩展
IDE 使用扩展或插件来扩展其功能,以及管理 IDE 之间扩展的机制。
4.1. Microsoft Visual Studio Code 扩展 - 开源
要管理扩展,此 IDE 使用以下 Open VSX registry 实例之一:
- public, primary open-vsx.org registry。
-
在 OpenShift Dev Spaces 的
plugin-registry
pod 中运行的 Open VSX registry 的嵌入式实例,以支持 air-gapped、offline 和 proxy-restricted 环境。嵌入式 Open VSX 注册表仅包含在 open-vsx.org 上发布的扩展的子集。可以自定义此子集。 - 独立 Open VSX registry 实例,部署到可从 OpenShift Dev Spaces 工作区 pod 访问的网络上。
4.1.1. 选择 Open VSX registry 实例
如果从您机构的集群中解析,位于 https://open-vsx.org
的 Open VSX 注册表是默认设置。如果没有,则 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,您也可以将
openVSXURL
指向独立 Open VSX registry 实例的 URL,且代理不会阻断它。
-
默认的
4.1.2. 在嵌入式 Open VSX registry 实例中添加或删除扩展
您可以在 OpenShift Dev Spaces 部署的嵌入式 Open VSX registry 实例中添加或删除扩展,以支持离线和代理的环境。
这将创建 Open VSX 注册表的自定义构建,可在您的组织的工作区中使用。
要在 OpenShift Dev Spaces 更新后获取最新的安全修复,请根据 latest 标签或 SHA 重建容器。
流程
- 下载或分叉,并克隆 插件 registry 存储库。
对于需要添加或删除的每个扩展,编辑
openvsx-sync.json
文件 :如果扩展在 open-vsx.org 上发布,您可以使用 < published_by&
gt
; 格式添加扩展 ID。< unique_identifier >。您可以在 open-vsx.org 上找到有关扩展列表页的id
详情。{ "id": "<published_by>.<unique_identifier>" }
提示open-vsx.org 上的最新扩展版本是默认值。或者,您可以在
新行中添加 "<extension_version>
version": " 以指定版本。如果扩展仅适用于 Microsoft Visual Studio Marketplace,但不是 Open VSX,您可以要求扩展发布者根据 这些说明 在 open-vsx.org 上发布。https://github.com/marketplace/actions/publish-vs-code-extension
提示- 如果扩展发布者不可用,或无法将扩展发布到 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
文件中删除扩展。
构建插件 registry 容器镜像,并将其发布到类似 quay.io 的容器 registry:
$ ./build.sh -o <username> -r quay.io -t custom
$ podman push quay.io/<username/plugin_registry:custom>
编辑机构的集群中的
CheCluster
自定义资源以指向镜像(例如,在 quay.io上),然后保存更改:spec: components: pluginRegistry: deployment: containers: - image: quay.io/<username/plugin_registry:custom> openVSXURL: ''
-
检查
plugin-registry
Pod 是否已重启并正在运行。 - 重新启动工作区,并检查工作区 IDE 的 Extensions 视图中的可用扩展。