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

为何babel.config使用.cjs扩展名会导致module-resolver失效?

问题:Expo中使用.cjs格式Babel配置导致module-resolver路径别名失效

已创建包含详细README的最小复现示例。

在Expo应用中配置babel-plugin-module-resolver路径别名时,Metro打包会失败。将babel.config的扩展名从.cjs改为.js后,问题得以解决,但无法理解其中原因。

根据Babel官方文档,Babel支持Node.js原生支持的所有文件扩展名,其中明确包含cjs;且Expo默认使用module.exports创建CommonJS格式的babel.config文件。

从未提交过GitHub Issue,但不确定此问题是否更适合提交至babel-plugin-module-resolver仓库,或是需要进一步排查以确定Expo或其他Babel插件是否相关。

排查过程

  • 使用npx create-expo-app创建新的Expo应用,验证是否是原有项目的问题
  • 添加路径别名到测试组件并通过别名导入后,运行Expo打包成功
  • 将babel.config重命名为.cjs并使用--clear参数重新运行Expo,打包失败并提示“Unable to resolve [path alias]...”

原本认为.cjs扩展名不会影响module-resolver的正常工作,但实际改为.js后问题才解决。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 19:45:32