ctx.requireAsync()
按 URL 异步加载 UMD/AMD 或挂载到全局的脚本,也可加载 CSS。适用于需使用 ECharts、Chart.js、FullCalendar(UMD 版)、jQuery 插件等 UMD/AMD 库的 RunJS 场景;传入 .css 地址会加载并注入样式。若库同时提供 ESM 版本,优先使用 ctx.importAsync()。
适用场景
凡 RunJS 中需按需加载 UMD/AMD/global 脚本或 CSS 的场景均可使用,如 JSBlock、JSField、JSItem、JSColumn、事件流、JSAction 等。典型用途:ECharts 图表、Chart.js、FullCalendar(UMD)、dayjs(UMD)、jQuery 插件等。
类型定义
参数
返回值
- 加载后的库对象(UMD/AMD 回调的第一个模块值)。许多 UMD 库会挂到
window(如window.echarts),返回值可能为undefined,实际使用时按库文档访问全局变量即可。 - 传入
.css时返回loadCSS的结果。
URL 格式说明
- 简写路径:如
echarts@5/dist/echarts.min.js,在默认 ESM CDN(esm.sh)下会请求https://esm.sh/echarts@5/dist/echarts.min.js?raw,?raw用于获取原始 UMD 文件而非 ESM 包装。 - 完整 URL:可直接写任意 CDN 地址,如
https://cdn.jsdelivr.net/npm/dayjs@1/dayjs.min.js。 - CSS:传入
.css结尾的 URL 会加载并注入页面。
与 ctx.importAsync() 的区别
- ctx.requireAsync():加载 UMD/AMD/global 脚本,适合 ECharts、Chart.js、FullCalendar(UMD)、jQuery 插件等;加载后库常挂到
window,返回值可能为库对象或undefined。 - ctx.importAsync():加载 ESM 模块,返回模块命名空间。若库同时提供 ESM,优先用
ctx.importAsync()以获得更好的模块语义与 Tree-shaking。
示例
基础用法
ECharts 图表
Chart.js 柱状图
dayjs(UMD)
注意事项
- 返回值形式:UMD 库导出方式各异,返回值可能为库对象或
undefined;若为undefined,可按库文档从window访问。 - 依赖网络:需访问 CDN,内网环境可通过 ESM_CDN_BASE_URL 指向自建服务。
- 与 importAsync 选择:库同时提供 ESM 与 UMD 时,优先用
ctx.importAsync()。
相关
- ctx.importAsync() - 加载 ESM 模块,适合 Vue、dayjs(ESM)等
- ctx.render() - 将图表等渲染到容器
- ctx.libs - 内置 React、antd、dayjs 等,无需异步加载

