From 59e872101329a7004359827065e307498ca92e20 Mon Sep 17 00:00:00 2001 From: Louis Acresti Date: Sat, 28 May 2016 19:12:54 -0700 Subject: [PATCH 1/3] add default .babelrc to RN project generator --- local-cli/generator/index.js | 4 ++++ local-cli/generator/templates/_babelrc | 3 +++ 2 files changed, 7 insertions(+) create mode 100644 local-cli/generator/templates/_babelrc diff --git a/local-cli/generator/index.js b/local-cli/generator/index.js index 43c327c5c02b43..c4728a422a8fbc 100644 --- a/local-cli/generator/index.js +++ b/local-cli/generator/index.js @@ -68,6 +68,10 @@ module.exports = yeoman.generators.NamedBase.extend({ this.templatePath('_buckconfig'), this.destinationPath('.buckconfig') ); + this.fs.copy( + this.templatePath('_babelrc'), + this.destinationPath('.babelrc') + ); }, writing: function() { diff --git a/local-cli/generator/templates/_babelrc b/local-cli/generator/templates/_babelrc new file mode 100644 index 00000000000000..a9ce1369e617e9 --- /dev/null +++ b/local-cli/generator/templates/_babelrc @@ -0,0 +1,3 @@ +{ + "presets": ["react-native"] +} From 838cca04033b28d3502ad2cdaa62a26f3d0a9676 Mon Sep 17 00:00:00 2001 From: Louis Acresti Date: Sat, 28 May 2016 19:16:11 -0700 Subject: [PATCH 2/3] add simple generator test --- local-cli/__tests__/generators-test.js | 1 + 1 file changed, 1 insertion(+) diff --git a/local-cli/__tests__/generators-test.js b/local-cli/__tests__/generators-test.js index f36fa7021257a9..0070ec721d410f 100644 --- a/local-cli/__tests__/generators-test.js +++ b/local-cli/__tests__/generators-test.js @@ -52,6 +52,7 @@ xdescribe('React Yeoman Generators', function() { '.flowconfig', '.gitignore', '.watchmanconfig', + '.babelrc', 'index.ios.js', 'index.android.js' ]); From 5d7dccc3eb8172b38d1bc6c62d961ab1135eb329 Mon Sep 17 00:00:00 2001 From: Louis Acresti Date: Sun, 29 May 2016 15:35:04 -0700 Subject: [PATCH 3/3] install babel-preset-react-native by default --- react-native-cli/index.js | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/react-native-cli/index.js b/react-native-cli/index.js index 56ab767a8c7444..5f64600f310b80 100755 --- a/react-native-cli/index.js +++ b/react-native-cli/index.js @@ -200,24 +200,28 @@ function createProject(name, verbose, rnPackage) { } } -function getInstallPackage(rnPackage) { - var packageToInstall = 'react-native'; +function getInstallPackages(rnPackage) { + var reactNativePackageToInstall = 'react-native'; var valideSemver = semver.valid(rnPackage); if (valideSemver) { - packageToInstall += '@' + valideSemver; + reactNativePackageToInstall += '@' + valideSemver; } else if (rnPackage) { // for tar.gz or alternative paths - packageToInstall = rnPackage; + reactNativePackageToInstall = rnPackage; } - return packageToInstall; + return [ + reactNativePackageToInstall, + 'babel-preset-react-native' + ].join(' '); } function run(root, projectName, rnPackage) { - exec('npm install --save ' + getInstallPackage(rnPackage), function(e, stdout, stderr) { + var installPackages = getInstallPackages(rnPackage); + exec('npm install --save ' + installPackages, function(e, stdout, stderr) { if (e) { console.log(stdout); console.error(stderr); - console.error('`npm install --save react-native` failed'); + console.error('`npm install --save ' + installPackages + '` failed'); process.exit(1); } @@ -229,10 +233,11 @@ function run(root, projectName, rnPackage) { } function runVerbose(root, projectName, rnPackage) { - var proc = spawn('npm', ['install', '--verbose', '--save', getInstallPackage(rnPackage)], {stdio: 'inherit'}); + var installPackages = getInstallPackages(rnPackage); + var proc = spawn('npm', ['install', '--verbose', '--save', installPackages], {stdio: 'inherit'}); proc.on('close', function (code) { if (code !== 0) { - console.error('`npm install --save react-native` failed'); + console.error('`npm install --save ' + installPackages + '` failed'); return; }