查看页面加载的资源版本

通过浏览器开发者面板

  1. 打开浏览器开发者面板的「Network」/「网络请求」标签页;
  2. 勾选「Disable cache」/「禁用缓存」选项,保持请求最新资源内容;
  3. 在过滤输入框中输入「rc.index.js」
  4. 网络请求列表中仅展示来自资源中心加载的资源;

  1. 选择其中一条「rc.index.js」静态文件的请求;
  2. 进入「Preview」/「响应预览」标签页,并滑动至文件尾部;
  3. 查看「WEBPACK_CHUNK_KEY」为前缀的内容,其中版本号即加载的资源的版本号;

页面中调试资源

调试方式

Chrome浏览器启用开发者模式,并进入「console」控制台面板。

输入 window['resource-center'].keys() 脚本,打印当前页面的资源缓存数据表,内容包含:资源SDK内置基础数据当前页面已加载的资源

输入 window['resource-center'].get(KEY).valueKEY为示例,具体键名以实际情况为准)脚本,打印指定键名对应的值

如果当前页面为乾坤(Qiankun)微前端子应用,则需要在 window 的节点后增加 proxy 节点。形如: window.proxy['resource-center'].keys()

如果在当前页面中无法找到 window['resource-center'] 节点,则说明该页面已打开或启动的模块未包含资源中心的资源内容。

资源SDK内置基础数据说明

字段名称 数据类型 说明
resource-center-CURRENT_TAB_RESOURCE_CENTER_CONTEXT Record<string, any> 获取当前标签页资源共享的所有依赖信息
resource-center-ROOT_APP_CONTROLLER { name: string } 获取当前标签页根宿主应用信息
resource-center-RESOURCE_CENTER_MONITOR { monitor: any; status?: 'start' | 'stop'; } 获取当前标签页资源监控实例信息

查看资源依赖共享示例

window['resource-center'].get("resource-center-CURRENT_TAB_RESOURCE_CENTER_CONTEXT").value

{
    // 该资源共享出来的依赖包名称
    [resourceDepName: string]: {
        // 该资源共享出来的依赖版本
        // 如果为0,则为默认版本,当前标签页资源的共享依赖未指定版本时,统一使用该版本的共享依赖
        [resourceDepVersion: string]: {
            // 该版本共享依赖来自于哪个资源模块
            from: string;
            // 该版本共享依赖是否在系统启动时就需要被加载
            eager: boolean;
            // 该版本共享依赖是否已经被加载
            loaded?: 1 | 0;
            // 该版本共享依赖的获取方法
            get: () => any;
        }
    }
}

查看资源根宿主应用示例

window['resource-center'].get("resource-center-ROOT_APP_CONTROLLER").value

{
    // 当前标签页根宿主应用资源名称
    // 一旦确定了根宿主,则所有该页面的资源,监控记录资源需求方时,都会是该根宿主资源
    name: string;
}

查看监控实例示例

window['resource-center'].get("resource-center-RESOURCE_CENTER_MONITOR").value

{
    // 当前标签页资源监控唯一实例,目前监控来自「万象监控」
    monitor: any;
    // 当前监控实例的状态
    status?: 'start' | 'stop';
}

当前页面已加载的资源

字段名称 数据类型 说明
resource-center-资源名称 { versions: Record<string, any> } 获取当前标签页加载的资源信息

示例及说明

{
    // 当前资源版本集合信息
    versions: {
        // 引入资源时所配置的版本号,如一直保持最新版本则键名为 latest
        [resourceVersion: string]: {
            // 获取该资源指定的导出内容
            // exposeName 为该资源的导出键名,可在资源管理系统中查看
            get: (exposeName: string) => Promise<any>;
            // 通过指定的共享域数据重新初始化该资源
            // ⚠️注意!该方法建议普通开发者不要在代码中使用,否则会导致资源运行过程异常!
            // webpackShareScope 为指定的共享域数据对象
            init: (webpackShareScope: any) => void;
        }
    }
}
作者:袁子涵  创建时间:2023-02-06 19:35
最后编辑:袁子涵  更新时间:2025-04-18 15:27