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

时间:2020-07-19 08:46:29

标签: 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"

我得到的错误是:

网络:

screenshot with web error

iOS: screenshot with ios error

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

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

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

没有mobile/metro.config.js

我查看了文档,迷失了博览会和都市配置之间。

1 个答案:

答案 0 :(得分:0)

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

See the Expo documentation

然后,直接按照Dushyant Bansal在Medium.com上进行的简单解释即可。我和您一样面临同样的问题,这对我来说是成功的。

How to import files from outside of root directory with React Native Metro bundler

此致

汤姆