mirror of
https://github.com/zhigang1992/react-native.git
synced 2026-04-26 23:05:00 +08:00
add upgrade cli command
Reviewed By: mkonicek Differential Revision: D2559885 fb-gh-sync-id: 785bd6ad855da30c00b170e737a7dd0f3e756430
This commit is contained in:
committed by
facebook-github-bot-4
parent
6f71b790f1
commit
7e53ee1095
@@ -26,13 +26,16 @@ var runAndroid = require('../private-cli/src/runAndroid/runAndroid');
|
||||
var server = require('../private-cli/src/server/server');
|
||||
var TerminalAdapter = require('yeoman-environment/lib/adapter.js');
|
||||
var yeoman = require('yeoman-environment');
|
||||
var upgrade = require('../private-cli/src/upgrade/upgrade');
|
||||
|
||||
var documentedCommands = {
|
||||
'start': [server, 'starts the webserver'],
|
||||
'bundle': [bundle, 'builds the javascript bundle for offline use'],
|
||||
'new-library': [library, 'generates a native library bridge'],
|
||||
'android': [generateWrapper, 'generates an Android project for your app'],
|
||||
'run-android': [runAndroid, 'builds your app and starts it on a connected Android emulator or device']
|
||||
'run-android': [runAndroid, 'builds your app and starts it on a connected Android emulator or device'],
|
||||
'upgrade': [upgrade, 'upgrade your app\'s template files to the latest version; run this after ' +
|
||||
'updating the react-native version in your package.json and running npm install']
|
||||
};
|
||||
|
||||
var undocumentedCommands = {
|
||||
|
||||
@@ -29,6 +29,11 @@ module.exports = yeoman.generators.NamedBase.extend({
|
||||
type: String,
|
||||
defaults: 'com.' + this.name.toLowerCase()
|
||||
});
|
||||
this.option('upgrade', {
|
||||
desc: 'Specify an upgrade',
|
||||
type: Boolean,
|
||||
defaults: false
|
||||
});
|
||||
},
|
||||
|
||||
initializing: function() {
|
||||
@@ -42,15 +47,29 @@ module.exports = yeoman.generators.NamedBase.extend({
|
||||
package: this.options.package,
|
||||
name: this.name
|
||||
};
|
||||
this.fs.copyTpl(
|
||||
this.templatePath(path.join('src', '**')),
|
||||
this.destinationPath('android'),
|
||||
templateParams
|
||||
);
|
||||
this.fs.copy(
|
||||
this.templatePath(path.join('bin', '**')),
|
||||
this.destinationPath('android')
|
||||
);
|
||||
if (!this.options.upgrade) {
|
||||
this.fs.copyTpl(
|
||||
this.templatePath(path.join('src', '**')),
|
||||
this.destinationPath('android'),
|
||||
templateParams
|
||||
);
|
||||
this.fs.copy(
|
||||
this.templatePath(path.join('bin', '**')),
|
||||
this.destinationPath('android')
|
||||
);
|
||||
} else {
|
||||
this.fs.copyTpl(
|
||||
this.templatePath(path.join('src', '*')),
|
||||
this.destinationPath('android'),
|
||||
templateParams
|
||||
);
|
||||
this.fs.copyTpl(
|
||||
this.templatePath(path.join('src', 'app', '*')),
|
||||
this.destinationPath(path.join('android', 'app')),
|
||||
templateParams
|
||||
);
|
||||
}
|
||||
|
||||
var javaPath = path.join.apply(
|
||||
null,
|
||||
['android', 'app', 'src', 'main', 'java'].concat(this.options.package.split('.'))
|
||||
|
||||
@@ -26,16 +26,21 @@ module.exports = yeoman.generators.NamedBase.extend({
|
||||
type: Boolean,
|
||||
defaults: false
|
||||
});
|
||||
this.option('upgrade', {
|
||||
desc: 'Specify an upgrade',
|
||||
type: Boolean,
|
||||
defaults: false
|
||||
});
|
||||
|
||||
// this passes command line arguments down to the composed generators
|
||||
var args = arguments[0];
|
||||
var args = {args: arguments[0], options: this.options};
|
||||
if (!this.options['skip-ios']) {
|
||||
this.composeWith('react:ios', {args: args}, {
|
||||
this.composeWith('react:ios', args, {
|
||||
local: require.resolve(path.resolve(__dirname, '..', 'generator-ios'))
|
||||
});
|
||||
}
|
||||
if (!this.options['skip-android']) {
|
||||
this.composeWith('react:android', {args: args}, {
|
||||
this.composeWith('react:android', args, {
|
||||
local: require.resolve(path.resolve(__dirname, '..', 'generator-android'))
|
||||
});
|
||||
}
|
||||
@@ -59,6 +64,10 @@ module.exports = yeoman.generators.NamedBase.extend({
|
||||
},
|
||||
|
||||
writing: function() {
|
||||
if (this.options.upgrade) {
|
||||
// never upgrade index.*.js files
|
||||
return;
|
||||
}
|
||||
if (!this.options['skip-ios']) {
|
||||
this.fs.copyTpl(
|
||||
this.templatePath('index.ios.js'),
|
||||
|
||||
Reference in New Issue
Block a user