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

Expo编译Web项目时无法找到TypeScript别名的问题

解决Expo Web构建找不到@/db模块的问题

问题原因

Android构建正常但Web失败,核心原因是Babel的module-resolver插件仅负责代码转译阶段的别名解析,而Expo Web的打包工具Webpack在打包环节需要单独配置别名规则,二者配合才能让Web环境正确识别@开头的路径别名。

解决方案

1. 确认依赖安装完整性

虽然你已在Babel配置中使用module-resolver,仍需确认插件是否安装:

npm install babel-plugin-module-resolver --save-dev
# 或使用yarn
yarn add babel-plugin-module-resolver --dev

2. 添加Webpack别名配置

在项目根目录创建webpack.config.js,通过覆盖Expo默认Webpack配置来添加别名:

const createExpoWebpackConfigAsync = require('@expo/webpack-config');

module.exports = async function (env, argv) {
  const config = await createExpoWebpackConfigAsync(env, argv);
  
  // 配置Webpack识别@别名
  config.resolve.alias['@'] = __dirname + '/src';
  
  return config;
};

3. (TypeScript项目可选)配置TS路径映射

如果项目使用TypeScript,在tsconfig.json的compilerOptions中添加路径配置,确保TS语法检查和编辑器识别别名:

{
  "compilerOptions": {
    // 保留原有配置
    "baseUrl": ".",
    "paths": {
      "@/*": ["src/*"]
    }
  }
}

4. 清除缓存并重启构建

执行命令清除Expo缓存后重新启动Web构建服务:

npx expo start --web --clear

完成以上步骤后,重新构建Web版本即可正常识别@/db模块。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 08:42:11