mirror of https://github.com/status-im/metro.git
Improve react-native-xcode.sh integration
Summary: Inspired by conversation in https://github.com/facebook/react-native/pull/5374, this PR improves `react-native-xcode.sh`: * No longer depends on global `react-native` binary * Gracefully handles missing `node` dependency and adds a new way to configure the path to `node` in non-standard installation environments This is how the error looks like: ![image](https://cloud.githubusercontent.com/assets/192222/12538882/3f9b5c3e-c29a-11e5-84fc-c7ccedf1c46a.png) Closes https://github.com/facebook/react-native/pull/5518 Reviewed By: svcscm Differential Revision: D2861116 Pulled By: frantic fb-gh-sync-id: 9a80eda6c844d066e34369b1cda503955171485b
This commit is contained in:
parent
2963af0bef
commit
e6916ec972
|
@ -23,12 +23,12 @@ case "$CONFIGURATION" in
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
|
# Path to react-native folder inside node_modules
|
||||||
|
REACT_NATIVE_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
||||||
|
|
||||||
# Xcode project file for React Native apps is located in ios/ subfolder
|
# Xcode project file for React Native apps is located in ios/ subfolder
|
||||||
cd ..
|
cd ..
|
||||||
|
|
||||||
set -x
|
|
||||||
DEST=$CONFIGURATION_BUILD_DIR/$UNLOCALIZED_RESOURCES_FOLDER_PATH
|
|
||||||
|
|
||||||
# Define NVM_DIR and source the nvm.sh setup script
|
# Define NVM_DIR and source the nvm.sh setup script
|
||||||
[ -z "$NVM_DIR" ] && export NVM_DIR="$HOME/.nvm"
|
[ -z "$NVM_DIR" ] && export NVM_DIR="$HOME/.nvm"
|
||||||
|
|
||||||
|
@ -43,10 +43,25 @@ if [[ -x "$HOME/.nodenv/bin/nodenv" ]]; then
|
||||||
eval "$($HOME/.nodenv/bin/nodenv init -)"
|
eval "$($HOME/.nodenv/bin/nodenv init -)"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# npm global install path may be a non-standard location
|
[ -z "$NODE_BINARY" ] && export NODE_BINARY="node"
|
||||||
PATH="$(npm prefix -g)/bin:$PATH"
|
|
||||||
|
|
||||||
react-native bundle \
|
nodejs_not_found()
|
||||||
|
{
|
||||||
|
echo "error: Can't find '$NODE_BINARY' binary to build React Native bundle" >&2
|
||||||
|
echo "If you have non-standard nodejs installation, select your project in Xcode," >&2
|
||||||
|
echo "find 'Build Phases' - 'Bundle React Native code and images'" >&2
|
||||||
|
echo "and change NODE_BINARY to absolute path to your node executable" >&2
|
||||||
|
echo "(you can find it by invoking 'which node' in the terminal)" >&2
|
||||||
|
exit 2
|
||||||
|
}
|
||||||
|
|
||||||
|
type $NODE_BINARY >/dev/null 2>&1 || nodejs_not_found
|
||||||
|
|
||||||
|
# Print commands before executing them (useful for troubleshooting)
|
||||||
|
set -x
|
||||||
|
DEST=$CONFIGURATION_BUILD_DIR/$UNLOCALIZED_RESOURCES_FOLDER_PATH
|
||||||
|
|
||||||
|
$NODE_BINARY $REACT_NATIVE_DIR/local-cli/cli.js bundle \
|
||||||
--entry-file index.ios.js \
|
--entry-file index.ios.js \
|
||||||
--platform ios \
|
--platform ios \
|
||||||
--dev $DEV \
|
--dev $DEV \
|
||||||
|
|
Loading…
Reference in New Issue