Closed nonameolsson closed 3 years ago
After some investigation, this is my conclusion.
Expo
This boilerplate uses the latest version of Expo (SDK 38)
. That version of Expo only supports up to React Native 0.62
.
Reference: https://blog.expo.io/expo-sdk-38-is-now-available-ab6cd30ca2ee
Without Expo
When generating an app without Expo, this boilerplate uses React Native 0.63.2
.
LogBox
With or without Expo, this boilerplate contains code only available in React Native 0.63.x
.
import { LogBox } from "react-native"
// prettier-ignore
LogBox.ignoreLogs([
"Require cycle:",
])
Conclusion
The boilerplate should not use features from React Native 0.63.x
when using Expo. I'm not sure how this could be improved to avoid issues like this when an app can be generated with Expo.
I suppose that Expo always will support older versions of React Native. Could one suggestion be to make sure only to use feature that Expo supports?
Thanks for the detailed report! 🎉
We should definitely consider Expo SDK support when enhancing Bowser - but rather than holding non-Expo Bowser apps back, I think it'd be better to condition specific features when there's a conflict.
In this case, we could rename ignore-warnings.ts
to ignore-warnings.ts.ejs
and conditionalize the content to use the old YellowBox
when generating an Expo app; storage.ts.ejs
has useExpo conditionals in it already if an example would help. You'll need to add to the templates
list in boilerplate.ts
too.
Thanks! Sounds like a good way to handle this! I'm on it!
:tada: This issue has been resolved in version 5.4.0 :tada:
The release is available on:
Your semantic-release bot :package::rocket:
What's going on? It is not possible to start an app generated with Bowser 5.3 and Expo.
Steps to reproduce
ignite new MyApp -b bowser
ignite doctor
results: