Reverted commit D3242754

Summary:
This separates the babel config of the local-cli and the packager from the one used by the transforms of the packager since it doesn't run in the same environment and the local-cli/packager doesn't require react specific transforms and runs in node 4 so we can also avoid some es2015 transforms that node already supports.

I had to move the code in cli.js so it can still run in node 0.12 that doesn't support `const` since it is no longer transformed.

**Test plan**
Run the local-cli on node 0.12 and there should be a message saying that it requires at least node 4.
Run the local-cli on node 4 and 5 and everything should work the same as before.

I was also hoping for some perf gains but there was nothing noticeable. I did benchmark the babel-register call and it stayed pretty much the same. As for runtime performance it can help if there are optimisations for es2015 features in node.
Closes https://github.com/facebook/react-native/pull/6155

Differential Revision: D3242754

Pulled By: eczarny

fb-gh-sync-id: 6cd349e284b7d92a1b2cc8b5c0e26adbfb0d9a2f
fbshipit-source-id: 6cd349e284b7d92a1b2cc8b5c0e26adbfb0d9a2f
This commit is contained in:
Janic Duplessis 2016-04-30 16:53:52 -07:00 committed by Facebook Github Bot 7
parent 50145b659f
commit b6d447769b
1 changed files with 12 additions and 11 deletions

View File

@ -12,19 +12,20 @@ Array.prototype.values || require('core-js/fn/array/values');
Object.entries || require('core-js/fn/object/entries');
Object.values || require('core-js/fn/object/values');
var fs = require('fs');
var path = require('path');
var _only = [];
function readBabelRC() {
var rcpath = path.join(__dirname, 'react-packager', 'rn-babelrc.json');
var source = fs.readFileSync(rcpath).toString();
return JSON.parse(source);
}
module.exports = function(onlyList) {
_only = _only.concat(onlyList);
require('babel-register')({
presets: ['es2015-node'],
plugins: [
'transform-flow-strip-types',
'syntax-trailing-function-commas',
'transform-object-rest-spread',
],
only: _only,
sourceMaps: 'inline',
});
var config = readBabelRC();
config.only = _only;
require('babel-register')(config);
};