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

React Native Expo使用alias作为文件路径导入时找不到文件如何解决?

问题原因及修复方案

配置存在的问题

你的报错是由babel和tsconfig的路径配置多处不规范导致的:

  • 两者的baseUrl/root配置错误:填写的/是操作系统根目录,而非当前项目根目录
  • babel的alias配置路径不统一、缺少相对路径前缀:部分路径没有加./指向项目内目录,同时有的别名加了通配符*有的未加,和tsconfig的paths规则不匹配
  • babel的module-resolver插件未配置可识别的文件后缀,无法正确解析项目内的ts/tsx文件

修复后的配置

1. 修正babel.config.js

module.exports = function(api) {
  api.cache(true);
  return {
    presets: ['babel-preset-expo'],
    "plugins": [
      [
        "module-resolver",
        {
          "root": ["./"], // 指向项目根目录
          "extensions": [".js", ".jsx", ".ts", ".tsx", ".json"], // 补充识别的文件后缀
          "alias": {
            "~/images": "./assets/images",
            "~/fonts": "./assets/fonts",
            "~/navigation": "./navigation",
            "~/hooks": "./hooks",
            "~/screens": "./screens",
            "~/components": "./components"
          }
        }
      ]
    ]
  };
};

2. 修正tsconfig.json

{
  "extends": "expo/tsconfig.base",
  "compilerOptions": {
    "strict": true,
    "baseUrl": ".", // 指向项目根目录
    "paths": {
      "~/images/*": ["./assets/images/*"],
      "~/fonts/*": ["./assets/fonts/*"],
      "~/navigation/*": ["./navigation/*"],
      "~/hooks/*": ["./hooks/*"],
      "~/screens/*": ["./screens/*"],
      "~/components/*": ["./components/*"]
    },
  },
}

配置生效操作

修改完成后执行以下操作清除缓存重启服务即可:

  • 停止当前运行的Expo服务
  • 执行npx expo start --clear清除缓存启动项目
  • 若仍有报错,删除node_modules、package-lock.json/yarn.lock重新安装依赖后再启动

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 11:15:05