Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix(metro-config): use explicit @expo/metro-config dependency with resolved module paths #25804

Merged
merged 8 commits into from
Dec 11, 2023

Conversation

byCedric
Copy link
Member

@byCedric byCedric commented Dec 7, 2023

Why

Unfortunately, metro-config does not always return the fully resolved path of dependencies within the default metro config. This causes issues when using isolated modules (pnpm or npm).

How

Test Plan

TBD, will provide a repo to test.

Checklist

…ve the right version

When using monorepos or isolated modules, this version could change depending on other installed packages. This changes the dependency from implicit to explicit and makes it more stable.
This renamed metro config package is the one we need to extend from in the future
…tending default config

After chatting with @huntie, the `@react-native/metro-config` is expected to not-touch on any Expo surface and is solely used for React Native without Expo. This means that we will still extend from `metro-config`, and apply the patches from `@react-native/metro-config` ourselves.
@byCedric byCedric force-pushed the @bycedric/metro-config/resolve-proper-metro-config branch from e675729 to 01cc315 Compare December 11, 2023 11:22
@byCedric byCedric requested a review from ide December 11, 2023 11:23
@byCedric byCedric merged commit 7939255 into main Dec 11, 2023
11 checks passed
@byCedric byCedric deleted the @bycedric/metro-config/resolve-proper-metro-config branch December 11, 2023 19:11
EvanBacon added a commit that referenced this pull request Dec 13, 2023
# Why

- fix regression in #25804

<!--
Please describe the motivation for this PR, and link to relevant GitHub
issues, forums posts, or feature requests.
-->

# How

<!--
How did you build this feature or fix this bug and why?
-->

# Test Plan

- Nothing in place to prevent this from regressing. We should probably
have e2e web tests now.

<!--
Please describe how you tested this change and how a reviewer could
reproduce your test, especially if this PR does not include automated
tests! If possible, please also provide terminal output and/or
screenshots demonstrating your test/reproduction.
-->

# Checklist

<!--
Please check the appropriate items below if they apply to your diff.
This is required for changes to Expo modules.
-->

- [ ] Documentation is up to date to reflect these changes (eg:
https://docs.expo.dev and README.md).
- [ ] Conforms with the [Documentation Writing Style
Guide](https://github.com/expo/expo/blob/main/guides/Expo%20Documentation%20Writing%20Style%20Guide.md)
- [ ] This diff will work correctly for `npx expo prebuild` & EAS Build
(eg: updated a module plugin).

---------

Co-authored-by: Expo Bot <[email protected]>
onizam95 pushed a commit to onizam95/expo-av-drm that referenced this pull request Jan 15, 2024
…resolved module paths (expo#25804)

# Why

Unfortunately, `metro-config` does not always return the fully resolved
path of dependencies within the default metro config. This causes issues
when using isolated modules (pnpm or npm).

# How

- Added explicit `@expo/metro-config` dependency to `expo`
→ This solves the same issue as expo#23580,
but simplified.
- Resolve `transformer.asyncRequireModulePath` to either
`@expo/metro-runtime` or `metro-runtime/src/modules/asyncRequire` (with
prio for `@expo/metro-runtime` when installed)

# Test Plan

TBD, will provide a repo to test.

# Checklist

<!--
Please check the appropriate items below if they apply to your diff.
This is required for changes to Expo modules.
-->

- [x] Documentation is up to date to reflect these changes (eg:
https://docs.expo.dev and README.md).
- [ ] Conforms with the [Documentation Writing Style
Guide](https://github.com/expo/expo/blob/main/guides/Expo%20Documentation%20Writing%20Style%20Guide.md)
- [ ] This diff will work correctly for `npx expo prebuild` & EAS Build
(eg: updated a module plugin).
onizam95 pushed a commit to onizam95/expo-av-drm that referenced this pull request Jan 15, 2024
# Why

- fix regression in expo#25804

<!--
Please describe the motivation for this PR, and link to relevant GitHub
issues, forums posts, or feature requests.
-->

# How

<!--
How did you build this feature or fix this bug and why?
-->

# Test Plan

- Nothing in place to prevent this from regressing. We should probably
have e2e web tests now.

<!--
Please describe how you tested this change and how a reviewer could
reproduce your test, especially if this PR does not include automated
tests! If possible, please also provide terminal output and/or
screenshots demonstrating your test/reproduction.
-->

# Checklist

<!--
Please check the appropriate items below if they apply to your diff.
This is required for changes to Expo modules.
-->

- [ ] Documentation is up to date to reflect these changes (eg:
https://docs.expo.dev and README.md).
- [ ] Conforms with the [Documentation Writing Style
Guide](https://github.com/expo/expo/blob/main/guides/Expo%20Documentation%20Writing%20Style%20Guide.md)
- [ ] This diff will work correctly for `npx expo prebuild` & EAS Build
(eg: updated a module plugin).

---------

Co-authored-by: Expo Bot <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bot: fingerprint changed bot: passed checks ExpoBot has nothing to complain about
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants