【问题标题】:How to hot reload a development package in an Expo app example nested folder?如何在 Expo 应用示例嵌套文件夹中热重载开发包?
【发布时间】:2021-05-07 19:07:35
【问题描述】:

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

我已经成功地使用带有 yarn 工作区和 expo-yarn-workspaces 包的 monorepo 架构来做到这一点。 但是当你不想像 monorepo 那样发布你的包时怎么办?

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

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

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

谢谢。

【问题讨论】:

    标签: react-native expo monorepo yarn-workspaces npm-package


    【解决方案1】:

    最后,我找到了适合我的东西。 如果需要,可以在这里找到我的 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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-01-30
      • 1970-01-01
      • 2016-08-18
      • 2021-11-06
      • 1970-01-01
      • 2018-04-21
      • 1970-01-01
      • 2020-08-31
      相关资源
      最近更新 更多