expo: Did I breake Fast Refresh with my tsconfigPaths ?

Minimal reproducible example

https://github.com/arnaudambro/expo-ts-refresh-broken

Summary

Well just do

  • npm install
  • npm run start
  • change anything to ./app/index.tsx

You’ll see that Fast Refresh doesn’t work

Environment

expo-env-info 1.0.5 environment info: System: OS: macOS 13.4.1 Shell: 5.9 - /bin/zsh Binaries: Node: 16.19.1 - ~/Library/Caches/fnm_multishells/55742_1688580993277/bin/node Yarn: 1.22.19 - ~/.yarn/bin/yarn npm: 8.19.3 - ~/Library/Caches/fnm_multishells/55742_1688580993277/bin/npm Watchman: 2023.05.22.00 - /opt/homebrew/bin/watchman Managers: CocoaPods: 1.12.1 - /opt/homebrew/bin/pod SDKs: iOS SDK: Platforms: DriverKit 22.4, iOS 16.4, macOS 13.3, tvOS 16.4, watchOS 9.4 Android SDK: API Levels: 30, 31, 32, 33 Build Tools: 28.0.3, 29.0.2, 29.0.3, 30.0.2, 30.0.3, 31.0.0, 32.0.0, 33.0.0 System Images: android-29 | Google Play Intel x86 Atom, android-29 | Google Play Intel x86 Atom_64, android-30 | ARM 64 v8a, android-30 | Google APIs ARM 64 v8a, android-30 | Google Play ARM 64 v8a, android-32 | Google APIs ARM 64 v8a, android-32 | Google Play ARM 64 v8a Android NDK: 21.1.6352462 IDEs: Android Studio: 2022.2 AI-222.4459.24.2221.10121639 Xcode: 14.3.1/14E300c - /usr/bin/xcodebuild npmPackages: expo: ^49.0.0-beta.5 => 49.0.0 react: 18.2.0 => 18.2.0 react-native: 0.72.1 => 0.72.1 npmGlobalPackages: eas-cli: 3.13.3 Expo Workflow: managed

About this issue

  • Original URL
  • State: closed
  • Created a year ago
  • Reactions: 4
  • Comments: 23 (2 by maintainers)

Most upvoted comments

Removing overrides and/or resolutions from package.json and reinstalling as mentioned here solves the problem. 🥳

{
  "name": "expo-49",
  "version": "1.0.0",
  "main": "expo-router/entry",
  "scripts": {
    "start": "expo start",
    "android": "expo start --android",
    "ios": "expo start --ios",
    "web": "expo start --web"
  },
- "overrides": {
-   "metro": "0.76.0",
-   "metro-resolver": "0.76.0"
- }
}

Thanks to this commit https://github.com/EvanBacon/expo-router-instagram-layout/commit/1e2a67a6c00b956367142de1fa4b89b7d13857a0#diff-7ae45ad102eab3b6d7e7896acd08c427a9b25b346470d7bc6507b6481575d519L36-L43

just upgraded to sdk49, never had any overrides or resolutions, it doesn’t work for us, any clues?

Same here. SDK 50.0.0-preview.10 Fast-refresh isnt working on Android emulator and physical device.

Fast refresh is not working on the Android emulator and physical device in SDK 50.0.0-preview.10. it works fine on the iOS simulator. There is no resolution or override in my package.json.

@GraxMonzo I can confirm that issue disappear and logs / FR and HR works fine

npx expo install --fix

work for me

here i removed the:

  • “overrides”: {
  • “metro”: “0.76.0”,
  • “metro-resolver”: “0.76.0”
  • } and add: “overrides”: { “react-refresh”: “~0.14.0” }, “resolutions”: { “react-refresh”: “~0.14.0” },

resolved for me

In case it helps anyone, I had an env var defined as follows in a constants file: export const BASE_URL = process.env.EXPO_PUBLIC_BASE_URL as string;

When I imported this BASE_URL and console logged it in another file the value of BASE_URL it wasn’t refreshing, but process.env.EXPO_PUBLIC_BASE_URL does refresh as expected. So I just avoided importing it and reference the env var from the process every time and now it works as expected. This probably should be fixed or documented.

This issue was occurring both on Android and iOS simulators.

Removing overrides and/or resolutions from package.json and reinstalling as mentioned here solves the problem. 🥳

{
  "name": "expo-49",
  "version": "1.0.0",
  "main": "expo-router/entry",
  "scripts": {
    "start": "expo start",
    "android": "expo start --android",
    "ios": "expo start --ios",
    "web": "expo start --web"
  },
- "overrides": {
-   "metro": "0.76.0",
-   "metro-resolver": "0.76.0"
- }
}

Thanks to this commit EvanBacon/expo-router-instagram-layout@1e2a67a#diff-7ae45ad102eab3b6d7e7896acd08c427a9b25b346470d7bc6507b6481575d519L36-L43

i am working on dev build, i did all of them and rebuild my app but doesnt worked for me. Stiil fastrefresh is not working

Removing overrides and/or resolutions from package.json and reinstalling as mentioned here solves the problem. 🥳

{
  "name": "expo-49",
  "version": "1.0.0",
  "main": "expo-router/entry",
  "scripts": {
    "start": "expo start",
    "android": "expo start --android",
    "ios": "expo start --ios",
    "web": "expo start --web"
  },
- "overrides": {
-   "metro": "0.76.0",
-   "metro-resolver": "0.76.0"
- }
}

Thanks to this commit EvanBacon/expo-router-instagram-layout@1e2a67a#diff-7ae45ad102eab3b6d7e7896acd08c427a9b25b346470d7bc6507b6481575d519L36-L43

It worked well