Skip to content

[Question] 怎样新增自定义的代码仓库类型 #273

Open

Description

@Pines-Cheng

描述你的问题(Describe you question here)
我们需要对接企业内部仓库,官方的 Gitlab 用不了,因为内部的 Gitlab 只支持 V4 版本的 API,因此需要自定义 gitlab.service.ts 文件。

我尝试直接 Copy 整个 code-api 模块,但是感觉这样做太重了,而且依赖安装和构建也有问题。

请问官方是否有更加轻量的新增自定义代码仓库类型的方式?

Activity

  1. Pines-Cheng commented on Mar 28, 2025

    @Pines-Cheng
    Author

    解决方案:

    1. Copy 整个 code-api 模块
    2. 需要官方模块改为 通过 requireModule 引入,因为通过添加 package.json 会导致重复依赖问题
    import { requireModule } from '@codeblitzjs/ide-core/bundle';
    const { Deferred } = requireModule('@opensumi/ide-core-common');
    1. 会报错找不到注入的 CodeAPIProvider,原因是 code-api/src/common/types.ts下有:
    export const ICodeAPIProvider = Symbol('ICodeAPIProvider');

    这里的 ICodeAPIProvider 和 @codeblitzjs/ide-code-api 里的 ICodeAPIProvider 不是同一个 ID,倒是找不到注入的 CodeAPIProvider。

    解决办法:
    将 code-api 中所有的 ICodeAPIProvider 引入改为

    const {ICodeAPIProvider} = requireModule('@codeblitzjs/ide-code-api')

    也就是保证 ICodeAPIProvider 的 ID 唯一性。

    当然,我理解正常 IoC 库都是可以重复注入并覆盖的,但是官方的 DI 库文档太少,这次时间紧急,就不研究了。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions