You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置Metro使其解析文件时不自动追加扩展名?

解决方案

问题根因

Metro 默认的可解析源扩展名列表未包含 .cjs 扩展名,因此无法识别已带完整后缀的 main.cjs 文件,才会持续在路径后追加其他预设扩展名尝试匹配,最终报文件不存在的错误。你之前在sourceExts中添加空字符串的操作对解决该问题无效,还可能干扰正常的解析逻辑。

修复步骤

修改你的metro.config.js文件,在resolver.sourceExts数组中添加cjs扩展名即可,修改后的完整配置如下:

module.exports = {
  transformer: {
    getTransformOptions: async () => ({
      transform: {
        experimentalImportSupport: false,
        inlineRequires: true,
      },
    }),
  },
  resolver: {
    sourceExts: ['jsx', 'js', 'ts', 'tsx', 'cjs'],
  },
};

修改完成后清空缓存重启Metro服务即可,启动时可添加--reset-cache参数确保旧缓存不影响:
npx react-native start --reset-cache

如果后续遇到 .mjs 后缀的ES模块文件出现同类解析问题,也可以将mjs同样加入sourceExts数组中适配。

内容的提问来源于stack exchange,提问作者Steven

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 03:45:10