React Native CLI
Command line tools that ship with react-native
in form of the @react-native-community/cli
package.
It exposes
react-native
binary, so you can callyarn react-native
ornpx react-native
directly from your project.
Note: CLI has been extracted from core react-native
as a part of "Lean Core" effort. Please read this blog post for more details.
Contents
- Compatibility
- Documentation
- About
- Creating a new React Native project
- Usage in an existing React Native project
- Updating the CLI
- Contributing
- Maintainers
- License
Compatibility
Our release cycle is independent of react-native
. We follow semver and here is the compatibility table:
@react-native-community/cli |
react-native |
---|---|
^3.0.0 | ^0.61.0 |
^2.0.0 | ^0.60.0 |
^1.0.0 | ^0.59.0 |
Documentation
About
This repository contains tools and helpers for React Native projects in form of a command line tool. There's been quite some confusion around that since the extraction from React Native core. Let's clear them up:
- There are currently two CLIs:
@react-native-community/cli
– the one used directly byreact-native
. That makes it a transitive dependency of your project.react-native-cli
– an optional global convenience package, which is a proxy to@react-native-community/cli
and global installation helper. Please consider it legacy, because it's not necessary anymore.
- When we say "the CLI" we mean
@react-native-community/cli
. - We update the CLI independently of React Native itself. Please see how to use the latest version.
- This is a monorepo to keep stuff organized.
We're actively working to make any indirections gone.
Creating a new React Native project
There are two ways to start a React Native project.
npx
(recommended)
Using Available since
react-native@0.60
This method is preferred if you don't want to install global packages.
npx react-native init MyApp
Using global CLI (legacy)
You'll need to install a global module react-native-cli
and follow instructions there.
We strongly encourage you to only use global
react-native-cli
for bootstrapping new projects. Use local version for everything else.
You can find out more about init command from the documentation
Usage in an existing React Native project
Once you're inside an existing project, a local react-native
binary will be available for you to use. Feel free to use Yarn to call it directly.
Example running start
command in terminal:
yarn react-native start
# or:
npx react-native start
# or
node ./node_modules/.bin/react-native start
You can also add npm scripts to call it with whichever package manager you use:
{
"scripts": {
"start": "react-native start"
}
}
Updating the CLI
Because we release independently of react-native
, it happens that you may be locked on a version without fixes for bugs that affect you. Here's how to get it sorted:
- If you use lock files (
yarn.lock
orpackage-lock.json
) - find the@react-native-community/cli
entry, remove it, runyarn install
/npm install
once again. - If you don't use lock files – remove
node_modules
and runyarn install
/npm install
again. - Run
yarn list @react-native-community/cli
ornpm list @react-native-community/cli
and verify you're on the latest version.
After performing these steps you should be on the latest CLI version. Feel free to do it once in a while, because we release often.
Maintainers
- Michał Pierzchała (@thymikee) - Callstack
- Mike Grabowski (@grabbou) - Callstack
- Kacper Wiszczuk (@esemesek) - Callstack
License
Everything inside this repository is MIT licensed.