平台兼容性
本文描述 v4 首个稳定版本的计划支持范围。兼容性结论以真实平台验证为准, 理论可执行不等于正式支持。
Alpha 阶段
当前尚未完成稳定版要求的全部真机与模拟器 smoke test。未验证的平台不能视为已承诺支持。
构建产物
- 只提供 ESM,不提供 CommonJS、UMD 或 ES5 legacy bundle
- JavaScript 构建目标为 ES2017
- 不提供
Promise、Map、Set等运行时 polyfill - 核心不依赖 DOM、Node.js API 或特定小程序全局对象
- 低于支持表的环境需要使用方自行转译和提供 polyfill,且不在官方支持范围
计划支持范围
| 环境 | 首个稳定版本计划范围 |
|---|---|
| 传统 uni-app App Android | 当前受支持的标准基座,以实际验证版本为准 |
| 传统 uni-app App iOS | iOS 13 及以上 |
| H5 | 支持 ES2017 的现代浏览器,不支持 IE11 |
| 微信、支付宝等小程序 | 平台当前受支持的运行时和基础库版本 |
| HarmonyOS | 支持对应 uni 网络 API 的 HBuilderX 版本 |
| uni-app x / UTS | 不支持 |
最终 App 最低系统版本取 luch-request、HBuilderX / 原生打包环境与项目原生插件 三者要求的最高值。
平台能力
核心请求能力依赖:
uni.requestuni.uploadFileuni.downloadFile
Task 的 abort、进度和响应头事件可能因平台或基础库版本缺失。luch-request 会 做能力检测,但不会把缺失能力模拟成原生能力。
AbortController 是 H5 浏览器提供的原生 JavaScript/Web API 对象,只在 H5 使用。App、小程序、HarmonyOS 等其他平台没有该对象;这些平台以及需要共享一套 跨平台代码的项目,应使用 luch-request 的 createCancelSource() 传递取消信号。 库不提供、也不要求全局 AbortController polyfill。
应用仍需自行处理:
- 小程序 request / uploadFile / downloadFile 合法域名
- H5 CORS
- 各平台网络权限
PATCH、后台请求、超时、文件数量等平台差异
稳定版发布验证
稳定版发布前至少需要:
- TypeScript 类型检查、Vitest 测试和完整构建通过
- 最终
dist/index.js不包含高于 ES2017 的必要运行语法 - npm 包可被 Vue 2 CLI 和 Vue 3 / Vite 项目消费
- H5、App Android、App iOS 13、微信小程序、支付宝小程序完成基础 request / upload / download smoke test
- Task 支持路径与能力缺失的降级路径分别有验证记录
在这些验证完成前,文档会持续使用“计划支持”,不会写成“已完全支持”。