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

How to hot reload a development package in an Expo app example nested folder?

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 一起安装一样。 它是如何工作的?

谢谢。

终于,我找到了适合我的东西。 如果你愿意,你可以在这里找到我的地铁配置: 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