Use a separate babel config for the local-cli and the packager

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

Reviewed By: bestander

Differential Revision: D3301008

Pulled By: davidaurelio

fbshipit-source-id: 504180d158a1e50bc03e28fb0d1e53d0731ce32f
This commit is contained in:
Janic Duplessis
2016-05-21 06:53:32 -07:00
committed by Facebook Github Bot 6
parent 25ea176f63
commit 6961fd23ba
7 changed files with 189 additions and 172 deletions

View File

@@ -131,7 +131,11 @@
"art": "^0.10.0",
"babel-core": "^6.6.4",
"babel-plugin-external-helpers": "^6.5.0",
"babel-plugin-syntax-trailing-function-commas": "^6.5.0",
"babel-plugin-transform-flow-strip-types": "^6.6.5",
"babel-plugin-transform-object-rest-spread": "^6.6.5",
"babel-polyfill": "^6.6.1",
"babel-preset-es2015-node": "^4.0.2",
"babel-preset-react-native": "^1.8.0",
"babel-register": "^6.6.0",
"babel-types": "^6.6.4",