如何在 Expo 应用程序示例嵌套文件夹中热重新加载开发包?

问题描述

当我重建包时,Expo 应用程序示例是否可以加载位于父文件夹中的模块并查看示例应用程序中的更改(使用 tsc -w 重建任何保存的文件)? 我确切地说该模块尚未在 npm 上发布。

我已经使用带有 yarn 工作区和 expo-yarn-workspaces 包的 monorepo 架构成功地做到了这一点。 但是如果你不想像 monorepo 一样发布你的包呢?

例如,在这个 repo https://github.com/cuvent/react-native-vision-camera 在裸工作流中有一个示例 RN 应用程序,在它的 package.json 中没有提到开发的包(意味着它不像普通依赖项那样安装)。 但是在应用程序 src/App.tsx 中,包是这样使用的:

import { Camera,frameRateIncluded,sortFormatsByResolution,filterFormatsByAspectRatio } from 'react-native-vision-camera';

不过,react-native-vision-camera 的使用就像它已经并且通常与 yarn 或 npm 一起安装一样。 它是如何工作的?

谢谢。

解决方法

最后,我找到了适合我的东西。 如果需要,可以在此处找到我的 Metro 配置: https://github.com/grean/react-native-metro-config-app-example 有了它,您可以从 expo 应用程序访问父组件,对其进行修改并立即查看热重载更改。 在您的 expo 根应用程序目录中创建一个文件 Metro.config 文件,其中包含该代码:

let config = require('@grean/react-native-metro-config-app-example/index.js');
module.exports = config

对于整个示例,您可以查看此 repo: https://github.com/grean/react-native-scale-text