Skip to content

feat:自动生成dynamic&自动生成webview-bridge下的dist,优化api-proxy引用逻辑#2469

Open
wangxiaokou wants to merge 4 commits intomasterfrom
feat-api-proxy-dynamic
Open

feat:自动生成dynamic&自动生成webview-bridge下的dist,优化api-proxy引用逻辑#2469
wangxiaokou wants to merge 4 commits intomasterfrom
feat-api-proxy-dynamic

Conversation

@wangxiaokou
Copy link
Copy Markdown
Collaborator

  1. 新增 packages/api-proxy/scripts/gen-dynamic.js

新增代码生成脚本,用于自动扫描平台 API 并生成 dynamic.js,避免手动维护。

  • 读取 src/platform/index.js,提取所有 export * from './api/xxx' 路径
  • 逐一解析各 API 模块的 index.js,收集所有具名导出,支持 export { a as b } 形式
  • 自动跳过找不到 index.js 的路径,对重复导出名称去重并打印警告
  • 生成每个 API 方法的懒加载包装函数,写入 dynamic.js
  • 本地执行方式:node packages/api-proxy/scripts/gen-dynamic.js

  1. 新增 packages/api-proxy/src/common/js/dynamic.js

由脚本自动生成,禁止手动修改。导出一个对象,包含约 90 个平台 API 的懒加载包装方法。

  • 每个方法通过 require() 在调用时才按需引入对应模块,调用前不加载
  • 相比静态 import,构建工具可对未使用的 API 实现按需拆包,减少 bundle 体积
  • 文件顶部有 do not edit manually 注释标识,变更须通过脚本重新生成

  1. 修改 packages/api-proxy/src/install.js
  • 新增 import dynamicApi from './common/js/dynamic'
  • 将 dynamicApi 通过 Object.assign 合并到 transedApi,使代理对象包含所有平台 API
  • 对外接口及行为不变,向后兼容

  1. 新增 .github/workflows/gen-api-dynamic.yml

新增 GitHub Actions workflow,自动保持 dynamic.js 与平台 API 实现同步。

  • 触发条件:向 master 推送时,若 src/platform/ 下有文件变更,或 gen-dynamic.js 本身有变更
  • 支持 workflow_dispatch 手动触发
  • 执行脚本后检测 dynamic.js 是否有变化,有变化才提交,避免无效 commit
  • 自动 commit 信息附带 [skip ci],防止触发循环流水线

@wangxiaokou wangxiaokou changed the title feat:自动生成dynamic,优化api-proxy引用逻辑 feat:自动生成dynamic&自动生成webview-bridge下的dist,优化api-proxy引用逻辑 Apr 24, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant