Update to Babel 6
Sebastian McKenzie committed
Feb 26, 2016 at 16:49 UTC
1365498b811ac3f91f6462152cc2dc6f1c6f01e4
5 files changed
+64
-31
.babelrc
new
+25
@@ -0,0 +1,25 @@
1
+{
2
+ "presets": ["react"],
3
+ "ignore": ["third_party"],
4
+ "plugins": [
5
+ "fbjs-scripts/babel-6/dev-expression",
6
+ "syntax-trailing-function-commas",
7
+ "transform-es2015-template-literals",
8
+ "transform-es2015-literals",
9
+ "transform-es2015-arrow-functions",
10
+ "transform-es2015-block-scoped-functions",
11
+ ["transform-es2015-classes", { "loose": true }],
12
+ "transform-es2015-object-super",
13
+ "transform-es2015-shorthand-properties",
14
+ "transform-es2015-computed-properties",
15
+ "transform-es2015-for-of",
16
+ "check-es2015-constants",
17
+ ["transform-es2015-spread", { "loose": true }],
18
+ "transform-es2015-parameters",
19
+ ["transform-es2015-destructuring", { "loose": true }],
20
+ "transform-es2015-block-scoping",
21
+ "transform-es2015-modules-commonjs",
22
+ "transform-es3-member-expression-literals",
23
+ "transform-es3-property-literals"
24
+ ]
25
+}
.eslintrc
+4
-1
@@ -2,12 +2,15 @@
2
parser: babel-eslint
3
4
extends:
5
- - ./node_modules/fbjs-scripts/eslint/.eslintrc
5
+ - ./node_modules/fbjs-scripts/eslint/.eslintrc.js
6
7
plugins:
8
- react
9
- react-internal
10
11
+ecmaFeatures:
12
+ modules: false
13
+
14
# We're stricter than the default config, mostly. We'll override a few rules and
15
# then enable some React specific ones.
16
rules:
gulpfile.js
+3
-11
@@ -14,8 +14,7 @@ var babel = require('gulp-babel');
14
var flatten = require('gulp-flatten');
15
var del = require('del');
16
17
-var babelPluginDEV = require('fbjs-scripts/babel/dev-expression');
18
-var babelPluginModules = require('fbjs-scripts/babel/rewrite-modules');
17
+var babelPluginModules = require('fbjs-scripts/babel-6/rewrite-modules');
18
19
var paths = {
20
react: {
@@ -30,16 +29,9 @@ var paths = {
29
};
30
31
var babelOpts = {
33
- nonStandard: true,
34
- blacklist: [
35
- 'spec.functionName',
32
+ plugins: [
33
+ [babelPluginModules, { map: require('fbjs/module-map') }],
34
],
37
- optional: [
38
- 'es7.trailingFunctionCommas',
39
- ],
40
- plugins: [babelPluginDEV, babelPluginModules],
41
- ignore: ['third_party'],
42
- _moduleMap: require('fbjs/module-map'),
35
};
36
37
gulp.task('react:clean', function() {
package.json
+23
-4
@@ -4,8 +4,27 @@
4
"version": "0.15.0-alpha.1",
5
"devDependencies": {
6
"async": "^1.5.0",
7
- "babel": "^5.8.29",
8
- "babel-eslint": "4.1.8",
7
+ "babel-core": "^6.0.0",
8
+ "babel-eslint": "^5.0.0",
9
+ "babel-plugin-check-es2015-constants": "^6.5.0",
10
+ "babel-plugin-syntax-trailing-function-commas": "^6.5.0",
11
+ "babel-plugin-transform-es2015-arrow-functions": "^6.5.2",
12
+ "babel-plugin-transform-es2015-block-scoped-functions": "^6.5.0",
13
+ "babel-plugin-transform-es2015-block-scoping": "^6.5.0",
14
+ "babel-plugin-transform-es2015-classes": "^6.5.2",
15
+ "babel-plugin-transform-es2015-computed-properties": "^6.5.2",
16
+ "babel-plugin-transform-es2015-destructuring": "^6.5.0",
17
+ "babel-plugin-transform-es2015-for-of": "^6.5.2",
18
+ "babel-plugin-transform-es2015-literals": "^6.5.0",
19
+ "babel-plugin-transform-es2015-modules-commonjs": "^6.5.2",
20
+ "babel-plugin-transform-es2015-object-super": "^6.5.0",
21
+ "babel-plugin-transform-es2015-parameters": "^6.5.0",
22
+ "babel-plugin-transform-es2015-shorthand-properties": "^6.5.0",
23
+ "babel-plugin-transform-es2015-spread": "^6.5.2",
24
+ "babel-plugin-transform-es2015-template-literals": "^6.5.2",
25
+ "babel-plugin-transform-es3-member-expression-literals": "^6.5.0",
26
+ "babel-plugin-transform-es3-property-literals": "^6.5.0",
27
+ "babel-preset-react": "^6.5.0",
28
"browserify": "^12.0.1",
29
"bundle-collapser": "^1.1.1",
30
"coffee-script": "^1.8.0",
@@ -17,7 +36,7 @@
36
"eslint-plugin-react": "3.8.0",
37
"eslint-plugin-react-internal": "file:eslint-rules",
38
"fbjs": "^0.6.1",
20
- "fbjs-scripts": "^0.5.0",
39
+ "fbjs-scripts": "0.6.0-alpha.2",
40
"glob": "^6.0.1",
41
"grunt": "^0.4.5",
42
"grunt-cli": "^0.1.13",
@@ -25,7 +44,7 @@
44
"grunt-contrib-clean": "^0.6.0",
45
"grunt-contrib-compress": "^0.14.0",
46
"gulp": "^3.9.0",
28
- "gulp-babel": "^5.3.0",
47
+ "gulp-babel": "^6.0.0",
48
"gulp-flatten": "^0.2.0",
49
"gzip-js": "~0.3.2",
50
"jest-cli": "^0.9.0-fb1",
scripts/jest/preprocessor.js
+9
-15
@@ -6,7 +6,7 @@ process.env.NODE_ENV = 'test';
6
7
var path = require('path');
8
9
-var babel = require('babel');
9
+var babel = require('babel-core');
10
var coffee = require('coffee-script');
11
12
var tsPreprocessor = require('./ts-preprocessor');
@@ -14,29 +14,22 @@ var tsPreprocessor = require('./ts-preprocessor');
14
// This assumes the module map has been built. This might not be safe.
15
// We should consider consuming this from a built fbjs module from npm.
16
var moduleMap = require('fbjs/module-map');
17
-var babelPluginDEV = require('fbjs-scripts/babel/dev-expression');
18
-var babelPluginModules = require('fbjs-scripts/babel/rewrite-modules');
17
+var babelPluginModules = require('fbjs-scripts/babel-6/rewrite-modules');
18
var createCacheKeyFunction = require('fbjs-scripts/jest/createCacheKeyFunction');
19
20
// Use require.resolve to be resilient to file moves, npm updates, etc
22
-var pathToBabel = path.join(require.resolve('babel'), '..', 'package.json');
21
+var pathToBabel = path.join(require.resolve('babel-core'), '..', 'package.json');
22
var pathToModuleMap = require.resolve('fbjs/module-map');
24
-var pathToBabelPluginDev = require.resolve('fbjs-scripts/babel/dev-expression');
25
-var pathToBabelPluginModules = require.resolve('fbjs-scripts/babel/rewrite-modules');
23
+var pathToBabelPluginDev = require.resolve('fbjs-scripts/babel-6/dev-expression');
24
+var pathToBabelPluginModules = require.resolve('fbjs-scripts/babel-6/rewrite-modules');
25
+var pathToBabelrc = path.join(__dirname, '..', '..', '.babelrc');
26
27
// TODO: make sure this stays in sync with gulpfile
28
var babelOptions = {
29
- nonStandard: true,
30
- blacklist: [
31
- 'spec.functionName',
32
- 'validation.react',
29
+ plugins: [
30
+ [babelPluginModules, { map: moduleMap }],
31
],
34
- optional: [
35
- 'es7.trailingFunctionCommas',
36
- ],
37
- plugins: [babelPluginDEV, babelPluginModules],
32
retainLines: true,
39
- _moduleMap: moduleMap,
33
};
34
35
module.exports = {
@@ -62,6 +55,7 @@ module.exports = {
55
getCacheKey: createCacheKeyFunction([
56
__filename,
57
pathToBabel,
58
+ pathToBabelrc,
59
pathToModuleMap,
60
pathToBabelPluginDev,
61
pathToBabelPluginModules,