mirror of
https://github.com/zhigang1992/react-native.git
synced 2026-06-18 22:05:06 +08:00
CLI: Add support for project templates
Summary: Currently it is not trivial for people to get started with React Native. `react-native init MyApp` just creates a simple app with a single screen. People have to spend time figuring out how to add more screens, or how to accomplish very basic tasks such as rendering a list of data or handling text input. Let's add an option: `react-native init --template navigation` - this creates a "starter" app which can be easily tweaked into the actual app the person wants to build. **Test plan (required)** - Checked that 'react-native init MyApp' still works as before: <img width="487" alt="screenshot 2017-02-02 16 56 28" src="https://cloud.githubusercontent.com/assets/346214/22559344/b2348ebe-e968-11e6-9032-d1c33216f490.png"> <img width="603" alt="screenshot 2017-02-02 16 58 04" src="https://cloud.githubusercontent.com/assets/346214/22559370/c96a2ca6-e968-11e6-91f7-7afb967920fc.png"> - Ran 'react-native init MyNavApp --template'. This prints the available templates: ``` $ react-native init MyNavApp Closes https://github.com/facebook/react-native/pull/12170 Differential Revision: D4516241 Pulled By: mkonicek fbshipit-source-id: 8ac081157919872e92947ed64ea64fb48078614d
This commit is contained in:
committed by
Facebook Github Bot
parent
75c14e3674
commit
a54d449e94
7
react-native-cli/index.js
vendored
7
react-native-cli/index.js
vendored
@@ -48,6 +48,7 @@ var semver = require('semver');
|
||||
* if you are in a RN app folder
|
||||
* init - to create a new project and npm install it
|
||||
* --verbose - to print logs while init
|
||||
* --template - name of the template to use, e.g. --template navigation
|
||||
* --version <alternative react-native package> - override default (https://registry.npmjs.org/react-native@latest),
|
||||
* package to install, examples:
|
||||
* - "0.22.0-rc1" - A new app will be created using a specific version of React Native from npm repo
|
||||
@@ -129,7 +130,8 @@ if (cli) {
|
||||
' Options:',
|
||||
'',
|
||||
' -h, --help output usage information',
|
||||
' -v, --version output the version number',
|
||||
' -v, --version use a specific version of React Native',
|
||||
' --template use an app template. Use --template to see available templates.',
|
||||
'',
|
||||
].join('\n'));
|
||||
process.exit(0);
|
||||
@@ -264,8 +266,7 @@ function getInstallPackage(rnPackage) {
|
||||
}
|
||||
|
||||
function run(root, projectName, options) {
|
||||
// E.g. '0.38' or '/path/to/archive.tgz'
|
||||
const rnPackage = options.version;
|
||||
const rnPackage = options.version; // e.g. '0.38' or '/path/to/archive.tgz'
|
||||
const forceNpmClient = options.npm;
|
||||
const yarnVersion = (!forceNpmClient) && getYarnVersionIfAvailable();
|
||||
var installCommand;
|
||||
|
||||
Reference in New Issue
Block a user