fix packager start for XCode
See original GitHub issueRunning 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
React Native Environment Info: System: OS: macOS 10.14.2 CPU: (4) x64 Intel® Core™ i5-2400 CPU @ 3.10GHz Memory: 62.86 MB / 6.00 GB Shell: 3.2.57 - /bin/bash Binaries: Node: 11.6.0 - /usr/local/bin/node Yarn: 1.13.0 - /usr/local/bin/yarn npm: 6.5.0 - /usr/local/bin/npm Watchman: 4.9.0 - /usr/local/bin/watchman SDKs: iOS SDK: Platforms: iOS 12.1, macOS 10.14, tvOS 12.1, watchOS 5.1 IDEs: Xcode: 10.1/10B61 - /usr/bin/xcodebuild npmPackages: react: 16.6.3 => 16.6.3 react-native: ^0.58.4 => 0.58.4 npmGlobalPackages: react-native-cli: 2.0.1
Thanks to @emusgrave for figuring this out.
Issue Analytics
- State:
- Created 5 years ago
- Reactions:6
- Comments:9 (5 by maintainers)
Top GitHub Comments
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
${projectRoot}/node_modules/react-native
.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
${projectRoot}/node_modules/react-native/src/index.js
instead of${projectRoot}/src/index.js
.This issue doesn’t occur if you start the packager yourself using
node node_modules/react-native/local-cli/cli.js start
from your projectRoot.It comes from this line. This script change the working directory to
${projectRoot}/node_modules/react-native
and start Metro from there. I think that it should cd into the projectRoot instead.Will this be fixed in 0.59.0 ?