Configuración de React Native utilizando ndenv en OS X

Me estoy topando con la dificultad PATH para configurar un nuevo proyecto React Native iOS en Xcode 7.1. Estoy intentando usar ndenv para administrar versiones de nodos, lo que significa que ~/.ndenv/shims necesita estar en PATH. Para ello, tengo PATH configurado como una configuration de proyecto definida por el usuario como $PATH:~/.ndenv/shims . La UI de configuration de Xcode muestra el valor PATH expandido correcto.

Sin embargo, el proyecto, generado por react-native init , aún no se puede build. El script de compilation personalizado no puede encontrar react-native :

../node_modules/react-native/packager/react-native-xcode.sh: line 36: react-native: command not found

react-native está instalado correctamente, pero el volcado de variables de entorno en la salida de compilation deja claro que ~/.ndenv/shims no está en PATH. Mi configuration PATH no aparece en el entorno de compilation. Sin embargo, si configuro una configuration definida por el usuario aleatoria (por ejemplo, FOOBAR=baz ), se mostrará correctamente en el entorno de compilation.

Ese resultado más una inspección adicional de PATH en el entorno de compilation deja en claro que Xcode está reemplazando a PATH en algún punto de la línea.

Entonces, en order de preference:

  • ¿Cómo agrego correctamente a PATH un script de compilation personalizado en Xcode 7?
  • Alternativamente, ¿cuál es la mejor manera (less hacky?) De get modules npm administrados por ndenv en PATH para el script de compilation?

La modificación de react-native-xcode.sh está fuera de cuestión, ya que es una parte del module npm de reacción nativa externa.

ACTUALIZACIÓN 1

Como una solución temporal, he rescatado a ndenv e instalado el nodo mediante homebrew. Esto pone react-native en la ruta Xcode (aparentemente codificada) en /usr/local/bin , y funciona para hacer que la construcción se ejecute. No voy a enviar o aceptar esto como una solución, ya que no permite el control repetible de las versiones de nodo que hace ndenv.

El problema parece ser que el script react-native-xcode.sh depende del package react-native-cli para estar en PATH. Este problema se informó al proyecto en estos dos numbers sobre Github:

Espero que se implemente una solución bastante pronto, porque este es un problema importante para cualquiera que use el cli nativo-reactivo para crear nuevos proyectos.

Hay algunos problemas para este problema, pero ninguno es perfecto. Cuál funcionaría para usted depende de su configuration de nodo / npm:

Yo mismo instalé el nodo a través de nvm y solo necesitaba agregar la export NVM_DIR=~/.nvm source $(brew --prefix nvm)/nvm.sh antes de ejecutar el react-native-xcode.sh . Para que esto funcione, necesita tener react-native-cli instalado globalmente.

Si necesita ayuda para encontrar una solución para su configuration específica, por favor dame más información sobre la configuration de su nodo. (o puede probar una de las otras soluciones señaladas en los problemas que he vinculado anteriormente).

Tenía el mismo problema. El trabajo alnetworkingedor llamado en el siguiente enlace está trabajando para mí. No he encontrado una solución permanente.

El XCode $ PATH difiere del terminal $ PATH y no incluye la ruta de los nodos nvm (~ / .nvm / versions / …). Esto se puede solucionar temporalmente agregando ~ / .bash_profile de origen al principio de react-native-xcode.sh

https://github.com/facebook/react-native/issues/3948

Parece que una solución para esto recién se publicó como versión 0.14.2

https://github.com/facebook/react-native/releases/tag/v0.14.2

Este problema se solucionó efectivamente cuando aterrizó Facebook / react-native # 5518 . react-native-xcode.sh ahora respeta una variable de entorno NODE_BINARY que le indica dónde encontrar un node en el sistema de compilation. Bajo el objective de su aplicación, vea Comstackr fases> Reactivar código e imágenes nativos y configurar el código del script de shell para:

 export NODE_BINARY=$HOME/.ndenv/shims/node ../node_modules/react-native/packager/react-native-xcode.sh 

Si su node encuentra en una location diferente, cambie el valor de NODE_BINARY para que se ajuste a su installation. Aquí hay una captura de pantalla de Xcode 7.1 para ayudar a la navigation:

Establezca NODE_BINARY en "Reactivar paquete código nativo e imágenes"