AFAIK it is not possible to use react-native in WSL due to a number of issues.
e.g. https://github.com/Microsoft/BashOnWindows/issues/1523
However, I've found a workaround that combines a native windows android build with a npm stack in WSL. Realistically, you'll want to install the native Windows Android Studio/SDK to use the Intellij IDE and the emulator anyway. The trick is to separate out the Gradle based Android compile.
Workflow
All project setup and package management performed in WSL with npm/yarn. react-native-cli installed globally in WSL. No need for a duplicate windows binary node/npm stack.
Don't use react-native run-android
, instead compile and deploy from cmd. From the /android
directory inside your project, execute the gradle wrapper gradlew.bat installDebug
, or with the Creator's Update, you can do this from inside the WSL bash shell /mnt/c/Windows/System32/cmd.exe /C gradlew.bat installDebug
. Don't use the unix gradlew script.
Once the APK has been assembled and uploaded to your device or emulator, run the debug server from within WSL using the command react-native start
.
I've tested this out with some fairly complex projects using multiple native Android components. Hope this helps.
- Note: For this to work your project needs to be located in the native Windows file system i.e. /mnt/c.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…