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' ]); 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"] +} 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; }