Class JModuleManager

Hierarchy (view full)

Constructors

Properties

defaultJModule?: typeof JModule
define: {
    (moduleKey, metadata): Promise<JModule>;
    (metadata): Promise<JModule>;
} = defineModule

定义模块

Type declaration

    • (moduleKey, metadata): Promise<JModule>
    • 定义模块

      Parameters

      • moduleKey: string

        定义模块唯一标识

      • metadata: ModuleMetadata & Record<string, any>

        定义模块

      Returns Promise<JModule>

      Example

      JModule.define('pipeline', {
      init(module) {},
      routes,
      imports: [],
      exports: {},
      });
    • (metadata): Promise<JModule>
    • 定义模块

      Parameters

      Returns Promise<JModule>

      Example

      JModule.define('pipeline', {
      init(module) {},
      routes,
      imports: [],
      exports: {},
      });

Param: moduleKey

定义模块唯一标识

Param: metadata

定义模块

Param: metadata.init<jModuleInstance>

初始化函数,自动调用

Param: metadata.imports

依赖的模块

Param: metadata.exports

对外暴露的功能

Example

JModule.define('pipeline', {
init(module) {},
routes,
imports: [],
exports: {},
});
fileListCache: string[] = []
fileMapCache: Record<string, [string, undefined | string]> = {}
jmoduleCache: {
    [id: string]: JModule;
} = {}

Type declaration

moduleExports: Record<string, any> = {}
moduleExportsCache: Record<string, any> = {}
nextJModuleId: number = 0
resourceCache: {
    [id: string]: Resource;
} = {}

Type declaration

resourceUrlAndModuleKeyMap: Record<string, string[]> = {}

Accessors

Methods

  • Parameters

    • options: {
          currentUrl: string;
          sourceUrl: string;
      }
      • currentUrl: string
      • sourceUrl: string

    Returns Document

  • 暴露平台功能给模块使用 与 JModuleManager.defaultJModule 数据一致

    Parameters

    • obj: {} = {}

      需要暴露的对象

      • matcher: {} = {}

        Returns void

        Example

        JModuleManager.export({
        $platform: {
        utils, event, router,
        },
        $node_modules: {
        vue: Vue,
        },
        }, { scope: 'default' });
      • 读取 moduleKey 对应的 JModule 构造函数

        Parameters

        • moduleKey: string

        Returns Function

      • 根据资源地址查找对应的 resourceUrl

        Parameters

        • url: undefined | null | string

        Returns undefined | string

      • 引用平台暴露的对象

        Type Parameters

        • T

        Parameters

        • namespace: string = ''
        • config: Record<string, string | number> = {}

          通过编译工具注入的相关环境参数

        Returns T

      • 读取/设置 moduleKey 与 Module 之间的关系

        Parameters

        • moduleKey: string
        • Optional instance: null | JModule

        Returns undefined | JModule

      • 引用其它模块暴露的功能

        Parameters

        • namespace: string

        Returns Promise<any>

        Example

        JModule.require('pipeline.models.PipelineApp')
        .then((PipelineApp) => {
        // do something
        });
      • 异步执行指定 hook

        Parameters

        • hookName: string
        • Rest ...inputArgs: any[]

        Returns Promise<any[]>

      • 同步执行指定 hook

        Parameters

        • hookName: string
        • Rest ...inputArgs: any[]

        Returns any[]

      • 等待模块加载完成

        Parameters

        • moduleKey: string

        Returns Promise<JModule>

        Example

        await JModuleManager.waitModuleComplete(moduleKey);
        

      Generated using TypeDoc