如何在expo项目中导入外部打字稿文件

Vla*_*ula 5 react-native expo metro-bundler

有没有办法从 expo 项目主文件夹之外的文件夹进行转换和支持导入?

我希望从共享文件夹中导入一些其他文件。

这是我的设置和问题:

根文件夹

有 3 个子文件夹,不package.json,不tsconfig.json,只有这些:

  • /server --> 一个nodejs Rest api
  • /mobile --> 世博会项目
  • /shared --> 包含许多常见打字稿文件的文件夹

手机文件夹

这个有使用typescript生成的 expo 项目。项目工作正常,直到我从 导入一些东西./shared

从 expo 文件夹中导入文件./shared不起作用:(npm run start在 中运行./mobile fodler

// mobile/src/screents/login
import { inject } from "../../../../shared/src/core/di"
Run Code Online (Sandbox Code Playgroud)

我得到的错误是这样的:

网址:

出现网络错误的屏幕截图

IOS: ios 错误截图

我的假设是找到该文件但未触发 babel/typescript 转译。我不确定在哪里可以指定这方面。

我的mobile/babel.config.js是expo生成的标准的:

module.exports = function(api) {
  api.cache(true);
  return {
    presets: ['babel-preset-expo'],
  };
};

Run Code Online (Sandbox Code Playgroud)

没有mobile/metro.config.js

我查看了文档,并在博览会和地铁配置之间迷失了方向。

小智 2

如果没有,您可以在Expo根项目文件夹中创建metro.config.js文件。更多详细信息可以在 Expo 文档中找到。

请参阅世博会文档

只需按照 Dushyant Bansal 在 Medium.com 上发布的这个简单且解释清楚的教程进行操作即可。我遇到了和你一样的问题,它为我完成了工作。

如何使用 React Native Metro 捆绑器从根目录外部导入文件

问候,

汤姆