'use strict' /** * withBugCollect(metroConfig) * 包裹 Metro 配置,打 Release 包时自动上传 SourceMap。 * 当前为存根实现,后续补全 SourceMap 上传逻辑。 */ function withBugCollect(metroConfig) { return { ...metroConfig, serializer: { ...metroConfig.serializer, customSerializer: async (entryPoint, preModules, graph, options) => { // 调用原始 serializer const baseSerializer = metroConfig.serializer?.customSerializer const result = baseSerializer ? await baseSerializer(entryPoint, preModules, graph, options) : undefined // 仅 Release 包上传 SourceMap(dev 模式跳过) if (!options.dev) { // TODO: 补全 SourceMap 上传逻辑 // 1. 读取 .xuqmconfig 或 xuqm.config.js 获取 bugCollectApiUrl // 2. 读取 sourceMapUrl 对应的 .map 文件 // 3. 上传到 bugCollectApiUrl/log/v1/sourcemaps/upload } return result }, }, } } module.exports = { withBugCollect }