Create React Native App is revived as a bare-bones npx package that can be used to start an opinionated bare-workflow universal React Native project.
This release merges Create React Native App with Expo CLI.
- Expo CLI is a tool based on CRNA, made by the same team
- It has all the same features, plus some additional benefits
- Like CRNA, Expo CLI does not require an Expo user account
- The
create-react-native-app
command will continue to work
The separate react-native-scripts
package is now deprecated: new projects created with create-react-native-app
will use Expo CLI instead of react-native-scripts
. In addition to everything provided by CRNA, Expo CLI includes these extras:
- Web-based user interface: in addition to the CLI, there's a GUI where you can view logs, launch the app on your devices or simulators, and publish updates.
- Standalone app builds: you can build IPA and APK packages for deploying to App Store and Play Store without using Xcode or Android Studio.
- Publishing: you can push updates to your deployed apps and optionally publish your app to Expo.io.
- Tunnel: your physical device doesn’t need to be in the same wi-fi as your computer to be able to develop using it.
- Optional user accounts: logging in allows listing all your projects in development in the Expo app without having to scan any QR codes and enables additional features like standalone builds. However, just like CRNA, Expo CLI can also be used without a user account.
- Just one tool to learn: previously developers would start with CRNA and then switch to exp or XDE for additional features like standalone builds. Expo CLI is as easy to get started with as CRNA, but also supports everything previously offered by these separate tools.
- Less confusing options: CRNA apps have always been loaded using the Expo app and able to use the Expo APIs in addition to the core React Native APIs. Users are sometimes confused about the differences between plain React Native, CRNA and Expo apps created with tools like exp or XDE. Installing the expo-cli package will make it clearer the additional functionality is provided by Expo.
- Developer experience: Expo CLI is ahead of CRNA in terms of features and developer experience, and we’re continuously improving it.
- Maintenance: having these two projects as separate codebases requires more maintenance and CRNA has previously falled behind because of this. A single codebase helps us keep it up to date and fix issues as fast as possible.
All apps created with create-react-native-app
, are compatible with Expo CLI without changes.
Upgrade react-native-scripts
to v2.0.1 with:
npm install --save --save-exact [email protected]
or
yarn add --exact [email protected]
When you run npm start
for the first time, Expo CLI will be installed.
Because react-native-scripts
is now a wrapper for Expo CLI, you can also follow these steps to remove it from your project and use Expo CLI directly:
- Replace
react-native-scripts
withexpo
in thescripts
config inpackage.json
. Example:"scripts": { "start": "expo start", "eject": "expo eject", "android": "expo start --android", "ios": "expo start --ios", "test": "jest" }
- Remove
react-native-scripts
fromdevDependencies
.
Update Expo SDK 27.
Update XDL to version 48.1.2.
- Add command to send the app URL to your phone via email or SMS. (2131997 by @brentvatne)
- Add support for Yarn workspaces. (#503 by @connectdotz)
- Update XDL.
Update XDL to version 48.0.2. (c671c7a by @fson)
- Update to Expo SDK 25. (4139951 by @brentvatne)
- Update for SDK 23. (56df72a by @brentvatne)
Release notes for previous releases between 1.3.1 and 1.7.0 were not include here as they only included React Native version bumps.
- Fix Flow config, works on new projects now as expected. (7402574 by @brentvatne)
- Fix an issue where
stdout
is null when validating inotify watches in some rare cases that I don't understand yet. (ed4f5f4 by @brentvatne)
- Force installation of Expo fork of react-native when ejecting to ExpoKit. (cbf3f9e by @brentvatne)
- Update to Expo SDK 20. (#370 by @ro-savage)
- Fix syntax error in flowconfig template. (#373 by @arahansen)
- Warn if OS file watcher config is too low and watchman is not installed. (#358 by @vs1682)
- Check if watchman exists before existing due to os config. (cd887b4 by @brentvatne)
- Switch Babel preset on eject (#328 by @fson)
- Fix yarnpkg alias usage in the init script (#329 by @fson)
- Add interactive mode with keyboard commands (#326 by @fson)
- Include whether dev or production is enabled in "Running app on" message (6559600 by @brentvatne)
- Fix broken link in README to test example. (5322584 by @brentvatne)
- Fix npm 5 version validation. (#317 by @DuncanMacWeb)
- Add
--package-manager
option which allows you to specify any package manager to use when creating a project. (#307 by @metheglin) - Update to Expo SDK 19 / React Native 0.46.1. (63d1ddb by @brentvatne)
- Softens warnings for npm 5 where version > 5.0.3. (#317 by @DuncanMacWeb)
- Add CHANGELOG.md (#319 by @shashkovdanil)
- Update xdl
- Removes the dependency on ngrok and dtrace, so there is no native compile step on install.