-
Notifications
You must be signed in to change notification settings - Fork 631
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
Implement resolver.unstable_enableSymlinks
#925
Closed
Closed
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
facebook-github-bot
added
CLA Signed
This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed.
fb-exported
labels
Feb 13, 2023
This pull request was exported from Phabricator. Differential Revision: D42847996 |
robhogan
added a commit
to robhogan/metro
that referenced
this pull request
Feb 13, 2023
) Summary: Pull Request resolved: facebook#925 This makes a minimally invasive change to `metro-resolver` to run source file and asset resolutions through a new `realPath` method of `FileSystem`. Custom `resolveRequest` implementations are not affected - for the time being they're expected to take responsibility for returning real paths on their own, but they may now use `content.unstable_realPath` to do so. This is not intended as a final design, but the resolver changes will dovetail into planned DependencyGraph work where we'll need to track non-existent resolution candidates (by their "candidate path", but ultimately resolve to real paths). Changelog: [Experimental] Implement `resolver.unstable_enableSymlinks` Differential Revision: D42847996 fbshipit-source-id: d763ad9ad4d76efe498c375a75e06b08a511d622
robhogan
force-pushed
the
export-D42847996
branch
from
February 13, 2023 16:24
c46a841
to
385cad8
Compare
This pull request was exported from Phabricator. Differential Revision: D42847996 |
) Summary: Pull Request resolved: facebook#925 This makes a minimally invasive change to `metro-resolver` to run source file and asset resolutions through a new `getRealPath` method of `FileSystem`. Custom `resolveRequest` implementations are not affected - for the time being they're expected to take responsibility for returning real paths on their own, but they may now use `content.unstable_getRealPath` to do so. This is not intended as a final design, but the resolver changes will dovetail into planned DependencyGraph work where we'll need to track non-existent resolution candidates (by their "candidate path", but ultimately resolve to real paths). Changelog: [Experimental] Implement `resolver.unstable_enableSymlinks` Differential Revision: D42847996 fbshipit-source-id: bf4cd09fcc619292558319e6c2abc2faa697a2a9
robhogan
force-pushed
the
export-D42847996
branch
from
February 15, 2023 12:48
385cad8
to
f7c7102
Compare
This pull request was exported from Phabricator. Differential Revision: D42847996 |
This pull request has been merged in a1e233c. |
robhogan
changed the title
Resolve files to real paths when
Implement Feb 15, 2023
unstable_enableSymlinks
resolver.unstable_enableSymlinks
Closed
hyochan
referenced
this pull request
in hyochan/dooboo-ui
Mar 14, 2023
….0 (#264) [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [metro-react-native-babel-preset](https://github.com/facebook/metro) | [`^0.72.0` -> `^0.76.0`](https://renovatebot.com/diffs/npm/metro-react-native-babel-preset/0.72.3/0.76.0) | [![age](https://badges.renovateapi.com/packages/npm/metro-react-native-babel-preset/0.76.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/npm/metro-react-native-babel-preset/0.76.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/npm/metro-react-native-babel-preset/0.76.0/compatibility-slim/0.72.3)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/npm/metro-react-native-babel-preset/0.76.0/confidence-slim/0.72.3)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>facebook/metro</summary> ### [`v0.76.0`](https://github.com/facebook/metro/releases/tag/v0.76.0) [Compare Source](https://github.com/facebook/metro/compare/v0.75.1...v0.76.0) - **\[Breaking]**: Increase minimum Node version from 14 to 16. (facebook/metro@e5950ae by [@​huntie](https://github.com/huntie)) - **\[Breaking]**: Remove `isAssetFile` from custom resolver context, add `assetExts`. (facebook/metro@c6548f7 by [@​huntie](https://github.com/huntie)) - **\[Feature]**: Support [`require.resolveWeak()`](https://facebook.github.io/metro/docs/module-api#requireresolveweak). (facebook/metro@354d6e4 by [@​motiz88](https://github.com/motiz88)) - **\[Fix]**: Don't over-invalidate on symlink changes if resolution through symlinks is not enabled. (facebook/metro@2303c10 by [@​robhogan](https://github.com/robhogan)) - **\[Fix]**: Returning `false` from [`context.redirectModulePath`](https://facebook.github.io/metro/docs/resolution#redirectmodulepath-string--string--false) will resolve to empty module in all cases. (facebook/metro@0f1846a by [@​huntie](https://github.com/huntie)) - **\[Fix]**: Respect extensionless entries in `browser`, `react-native` etc when resolving subpath package specifiers. (facebook/metro@7e92227 by [@​huntie](https://github.com/huntie)) - **\[Fix]**: Remove undocumented Meta-only `__jsResource` and `__conditionallySplitJsResource` functions from module API. (facebook/metro@f1d905b and facebook/metro@69c8fc7 by [@​motiz88](https://github.com/motiz88)) > NOTE: Experimental features are not covered by semver and can change at any time. - **\[Experimental]**: Fixes and improvements for symlink support. (facebook/metro@0e2a70a, facebook/metro@3bef954, and facebook/metro@eeb211f by [@​robhogan](https://github.com/robhogan)) - **\[Experimental]**: Fix bug where `"exports"` field would be used on relative imports within a package. (facebook/metro@cd25c2b by [@​huntie](https://github.com/huntie)) ### [`v0.75.1`](https://github.com/facebook/metro/releases/tag/v0.75.1) [Compare Source](https://github.com/facebook/metro/compare/v0.75.0...v0.75.1) - **\[Feature]**: `metro-inspector-proxy`: Add a human-readable reference to each inspector entries/pages.([https://github.com/facebook/metro/pull/921](https://github.com/facebook/metro/pull/921) by [@​byCedric](https://github.com/byCedric)) - **\[Feature]**: `metro-inspector-proxy`: Report errors in the console. (facebook/metro@da8b41b by [@​mattbfb](https://github.com/mattbfb)) - **\[Fix]**: Race condition where a very recently modified file might have missing metadata.(facebook/metro@baf28ab by [@​robhogan](https://github.com/robhogan)) - **\[Fix]**: Source maps may have invalid entries when using Terser minification. ([https://github.com/facebook/metro/pull/928](https://github.com/facebook/metro/pull/928) by [@​robhogan](https://github.com/robhogan)) - **\[Fix]**: `metro-inspector-proxy`: Fetch source maps from Metro. (facebook/metro@6690b39 by [@​mattbfb](https://github.com/mattbfb)) - **\[Fix]**: Mitigate potential source map mismatches with concurrent transformations due to [terser#​1341](https://github.com/terser/terser/issues/1341). ([https://github.com/facebook/metro/pull/929](https://github.com/facebook/metro/pull/929) by [@​robhogan](https://github.com/robhogan)) > NOTE: Experimental features are not covered by semver and can change at any time. - **\[Experimental]**: Add initial_build annotation to Resolving and Transforming Dependencies (facebook/metro@fc83b52 by [@​blakef](https://github.com/blakef)) - **\[Experimental]**: Implement support for Package Exports (enabled via `resolver.unstable_enablePackageExports`) (facebook/metro@4d7ab38, facebook/metro@38b96f8, facebook/metro@216d3e2, facebook/metro@6e6f36f by [@​huntie](https://github.com/huntie)) - **\[Experimental]**: Implement support for symlinks (enabled via `resolver.unstable_enableSymlinks`) ([https://github.com/facebook/metro/pull/925](https://github.com/facebook/metro/pull/925), [https://github.com/facebook/metro/pull/926](https://github.com/facebook/metro/pull/926), etc. by [@​robhogan](https://github.com/robhogan)) **Full Changelog:** facebook/metro@v0.75.0...v0.75.1 ### [`v0.75.0`](https://github.com/facebook/metro/releases/tag/v0.75.0) [Compare Source](https://github.com/facebook/metro/compare/v0.74.1...v0.75.0) - **\[Breaking]**: Formalise minimum Node JS requirement at 14.17.0 via `package.json#engines`. (facebook/metro@c3e453e) - **\[Breaking]**: Filter untyped context properties passed to custom resolvers. (facebook/metro@cb01ec0) - **\[Breaking]**: Change default `context.redirectModulePath` implementation to return absolute path in all cases. (facebook/metro@acbfe63) - **\[Feature]**: Add `mainFields`, `getPackage`, and `getPackageForModule` to custom resolver context. (facebook/metro@adfb593) **Full Changelog**: facebook/metro@v0.74.1...v0.75.0 ### [`v0.74.1`](https://github.com/facebook/metro/releases/tag/v0.74.1) [Compare Source](https://github.com/facebook/metro/compare/v0.74.0...v0.74.1) - **\[Feature]**: Add `@babel/plugin-proposal-numeric-separator` to `metro-react-native-babel-preset` ([https://github.com/facebook/metro/pull/681](https://github.com/facebook/metro/pull/681) by [@​SConaway](https://github.com/SConaway)) **Full Changelog**: facebook/metro@v0.74.0...v0.74.1 ### [`v0.74.0`](https://github.com/facebook/metro/releases/tag/v0.74.0) [Compare Source](https://github.com/facebook/metro/compare/v0.73.8...v0.74.0) - **\[Breaking]** Remove [@​babel/plugin-transform-template-literals](https://github.com/babel/plugin-transform-template-literals) from metro-react-native-babel-preset (facebook/metro@322dea8) - **\[Breaking]** Remove `postProcessBundleSourcemap` from config (facebook/metro@339794e) - **\[Fix]** Don't log ENOENT errors to console for expected URL stack frames (facebook/metro@1031ae6) - **\[Fix]** Don't attempt to use the `find` crawler on Windows (facebook/metro@735aa9f) - **\[Performance]** Improve AST processing during transformation ([https://github.com/facebook/metro/pull/854](https://github.com/facebook/metro/pull/854) by [@​EvanBacon](https://github.com/EvanBacon)) - **\[Performance]** Improve Fast Refresh responsiveness when watching a large number of files (facebook/metro@b942eca) **Full Changelog:** facebook/metro@v0.73.6...v0.74.0 ### [`v0.73.8`](https://github.com/facebook/metro/releases/tag/v0.73.8) [Compare Source](https://github.com/facebook/metro/compare/v0.73.7...v0.73.8) *This is a hotfix on the `0.73.x` branch.* - **\[Fix]**: Source maps may have invalid entries when using Terser minification. ([https://github.com/facebook/metro/pull/928](https://github.com/facebook/metro/pull/928)) - **\[Fix]**: Mitigate potential source map mismatches with concurrent transformations due to [terser#​1341](https://github.com/terser/terser/issues/1341). ([https://github.com/facebook/metro/pull/929](https://github.com/facebook/metro/pull/929)) **Full Changelog**: facebook/metro@v0.73.7...v0.73.8 ### [`v0.73.7`](https://github.com/facebook/metro/releases/tag/v0.73.7) [Compare Source](https://github.com/facebook/metro/compare/v0.73.6...v0.73.7) *This is a hotfix on the `0.73.x` branch.* - **\[Fix]** Don't attempt to use the `find` crawler on Windows (facebook/metro@3703019) ### [`v0.73.6`](https://github.com/facebook/metro/releases/tag/v0.73.6) [Compare Source](https://github.com/facebook/metro/compare/v0.73.5...v0.73.6) - **\[Fix]** Fix duplicate 'add' events, reduce dropped events on new subtrees in `NodeWatcher` (non-Watchman, non-macOS).(facebook/metro@51fb7e3) > NOTE: Experimental features are not covered by semver and can change at any time. - **\[Experimental]** `experimentalImportBundleSupport`: Move bundle path hints into serialised dependency map([https://github.com/facebook/metro/pull/901](https://github.com/facebook/metro/pull/901)) **Full Changelog:** facebook/metro@v0.73.5...v0.73.6 ### [`v0.73.5`](https://github.com/facebook/metro/releases/tag/v0.73.5) [Compare Source](https://github.com/facebook/metro/compare/v0.73.4...v0.73.5) - **\[Fix]**: Make all `getTransformOptions` result properties optional. (facebook/metro@a07c823) - **\[Fix]**: Bug that can lead to "unknown module" errors at runtime after an incremental build. (facebook/metro@b1be263) - **\[Fix]**: `metro-runtime`: Re-throw cached module errors without wrapping. (facebook/metro@032c4a1) - **\[Fix]** Bump `babel/types` dependency to `^7.20.0` for more consistent exposed AST Bump `babel/types` dependency to `^7.20.0` for more consistent exposed AST **Full Changelog**: facebook/metro@v0.73.4...v0.73.5 ### [`v0.73.4`](https://github.com/facebook/metro/releases/tag/v0.73.4) [Compare Source](https://github.com/facebook/metro/compare/v0.73.3...v0.73.4) - **\[Feature]:** Expose `watch` option in `RunServerOptions` ([https://github.com/facebook/metro/pull/889](https://github.com/facebook/metro/pull/889) by [@​EvanBacon](https://github.com/EvanBacon)) - **\[Feature]:** `metro-runtime`: Emit additional context on WebSocket `'close'` events (facebook/metro@d54986c) > NOTE: Experimental features are not covered by semver and can change at any time. - **\[Experimental]**: `experimentalImportBundleSupport`: Retraverse parents of deleted async dependencies (facebook/metro@cb806d1) **Full Changelog:** facebook/metro@v0.73.3...v0.73.4 ### [`v0.73.3`](https://github.com/facebook/metro/releases/tag/v0.73.3) [Compare Source](https://github.com/facebook/metro/compare/v0.73.2...v0.73.3) - **\[Feature]**: Add configurable watcher health check that is off by default (facebook/metro@7adf468, facebook/metro@39f6e50) > NOTE: Experimental features are not covered by semver and can change at any time. - **\[Experimental]**: Move `experimentalImportBundleSupport` option from transformer to server (facebook/metro@3c0e1f7) **Full Changelog:** facebook/metro@v0.73.2...v0.73.3 ### [`v0.73.2`](https://github.com/facebook/metro/releases/tag/v0.73.2) [Compare Source](https://github.com/facebook/metro/compare/v0.73.1...v0.73.2) Maintenance release with purely internal changes. **Full Changelog:** facebook/metro@v0.73.1...v0.73.2 ### [`v0.73.1`](https://github.com/facebook/metro/releases/tag/v0.73.1) [Compare Source](https://github.com/facebook/metro/compare/v0.73.0...v0.73.1) - **\[Fix]**: Generate a unique name for each Watchman subscription. ([`3b0e78a`](https://github.com/facebook/metro/commit/3b0e78a76f4eea9f02e8b8464cf5b5e4549d6ac7)) > NOTE: Experimental features are not covered by semver and can change at any time. - **\[Experimental]\[Fix]**: Normalize file paths for `require.context` on Windows ([https://github.com/facebook/metro/pull/876](https://github.com/facebook/metro/pull/876) by [@​byCedric](https://github.com/byCedric)) **Full Changelog:** facebook/metro@v0.73.0...v0.73.1 ### [`v0.73.0`](https://github.com/facebook/metro/releases/tag/v0.73.0) [Compare Source](https://github.com/facebook/metro/compare/v0.72.3...v0.73.0) - **\[Breaking]** Switch default minifier from `uglify-es` to `terser`. ([#​871](https://github.com/facebook/metro/issues/871)) - **\[Breaking]**: Increase minimum supported Node.js version to ^14.17.0. ([#​872](https://github.com/facebook/metro/issues/872)) - **\[Breaking]**: Drop support for old (pre-CalVer) Watchman versions. ([`422055a`](https://github.com/facebook/metro/commit/422055a5ccaca41edb1864ca07d4f810b3e03791)) - **\[Feature]**: Support `fsevents` watcher on Apple Silicon. ([#​875](https://github.com/facebook/metro/issues/875)) - **\[Feature]**: Support loading source URLs in inspector-proxy. ([`db19b06`](https://github.com/facebook/metro/commit/db19b06bdd6d2fbbe109e4f3be4b3af3489c1f1c)) - **\[Fix]**: Log warning on unexpected error during `metro-file-map` cache read. ([`7028b7f`](https://github.com/facebook/metro/commit/7028b7f51074f9ceef22258a8643d0f90de2388b)) - **\[Fix]**: Remove exponentiation operator transform from `metro-react-native-babel-preset`. ([`c2365bb`](https://github.com/facebook/metro/commit/c2365bb1d72a3773b31c05feab13a96afac484df)) - **\[Fix]**: Don’t check `watchman --version` if `useWatchman` is false. ([`76c9307`](https://github.com/facebook/metro/commit/76c9307ed61efa7794b30b4e585cc5941ed73e16)) **Full Changelog:** facebook/metro@v0.72.3...v0.73.0 </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/dooboolab/dooboo-ui). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNC4xNjAuMCIsInVwZGF0ZWRJblZlciI6IjM0LjE2MC4wIn0=--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
CLA Signed
This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed.
fb-exported
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary:
This makes a minimally invasive change to
metro-resolver
to run source file and asset resolutions through a newrealPath
method ofFileSystem
.Custom
resolveRequest
implementations are not affected - for the time being they're expected to take responsibility for returning real paths on their own, but they may now usecontent.unstable_realPath
to do so.This is not intended as a final design, but the resolver changes will dovetail into planned DependencyGraph work where we'll need to track non-existent resolution candidates (by their "candidate path", but ultimately resolve to real paths).
Changelog: [Experimental] Implement
resolver.unstable_enableSymlinks
Demo with PNPM:
https://user-images.githubusercontent.com/2590098/219153522-d31f1997-bdf2-48aa-ae09-91c871ce8372.mov
Differential Revision: D42847996