-
Notifications
You must be signed in to change notification settings - Fork 24.4k
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 packager start for XCode #23342
Comments
It looks like you are using an older version of React Native. Please update to the latest release, v0.58 and verify if the issue still exists. The "Resolution: Old Version" label will be removed automatically once you edit your original post with the results of running |
I've upgraded now, issue still exists. |
This issue occurs since Metro v0.47. It happens when the the start command of the local-cli is not executed in the projectRoot directory e.g when you let Xcode start the packager for you. In this case, the cwd will be Some babel plugins such as babel-plugin-module-resolver or babel-plugin-import-graphql fail to resolve files because of it. They receive wrong filenames from Babel such as This issue doesn't occur if you start the packager yourself using It comes from this line. This script change the working directory to |
Will this be fixed in 0.59.0 ? |
For anyone who'll pick it up, please check out #21480 - they might be connected. |
Please see the workaround from @MatthieuLemoine. It seems like you have a custom setup and you need to start Metro in the right place. |
@cpojer Worked like a charm on 0.56. All the time started RN from XCode. Please re-open. |
@cpojer This issue happens when you let Xcode (therefore RN build scripts) start the packager for you whatever your setup is. The build script |
Got it. I'm gonna reopen this issue. Do you mind sending a Pull Request with the fix? |
Summary: Fixes #23342. Since Metro [v0.47](https://github.com/facebook/metro/releases/tag/v0.47.0), some babel plugins such as [babel-plugin-module-resolver](https://github.com/tleunen/babel-plugin-module-resolver) or [babel-plugin-import-graphql](https://github.com/detrohutt/babel-plugin-import-graphql) fail to resolve files if the packager is started through Xcode. They receive wrong filenames from Babel such as `${projectRoot}/node_modules/react-native/src/index.js` instead of `${projectRoot}/src/index.js`. It happens because the start command of the local-cli is not executed in the projectRoot directory. In this case, the cwd will be `${projectRoot}/node_modules/react-native`. This issue doesn't occur if you start the packager yourself using `node node_modules/react-native/local-cli/cli.js start` from your project root. It comes from this [line](https://github.com/facebook/react-native/blob/b640b6faf77f7af955e64bd03ae630ce2fb09627/scripts/packager.sh#L11). This script changed the working directory to `${projectRoot}/node_modules/react-native` and started Metro from there. Starting Metro from the project root fixes this issue. [iOS] [Fixed] - Start Metro packager from project root Pull Request resolved: #24070 Differential Revision: D14563996 Pulled By: cpojer fbshipit-source-id: cdeff34610f1ebb5fb7bc82a96f4ac9eec750d16
Running App from XCode didn't work anymore. All paths which
bable resolver plugin
use are broken.Running App from CLI with
react-native start ios --reset-cache
works.Reason: packager.js will be started from wrong path.
Detail-Description & Solution
Environment
Thanks to @emusgrave for figuring this out.
The text was updated successfully, but these errors were encountered: