Skip to content

Commit d29639d

Browse files
committed
Bumping to Babel 6
- Added jsnext:main entry for rollup/webpack 2 ready build - Upgrade ReactRouter - Add src and es6 to package.json files entry for custom builds - Add babel-standalone for docs build - Upgrade to Babel 6
1 parent 5ff316c commit d29639d

18 files changed

+123
-139
lines changed

.babelrc

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
{
2-
"stage": 1,
3-
"optional": ["runtime"],
4-
"loose": ["all"],
5-
"plugins": ["dev-expression"]
2+
"presets": ["es2015-loose", "react", "stage-1"],
3+
"plugins": [
4+
"transform-runtime",
5+
"transform-es3-member-expression-literals",
6+
"transform-es3-property-literals"
7+
]
68
}

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,3 +13,4 @@ tmp-bower-repo/
1313
tmp-docs-repo/
1414
.babel-cache/
1515
coverage/
16+
es6/

docs/build.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import fsp from 'fs-promise';
44
import path from 'path';
55
import React from 'react';
66
import ReactDOMServer from 'react-dom/server';
7-
import {match, RoutingContext} from 'react-router';
7+
import {match, RouterContext} from 'react-router';
88

99
import Root from './src/Root';
1010
import routes from './src/Routes';
@@ -33,7 +33,7 @@ function generateHTML(fileName) {
3333
const location = fileName === 'index.html' ? '/' : `/${fileName}`;
3434
match({routes, location}, (error, redirectLocation, renderProps) => {
3535
let html = ReactDOMServer.renderToString(
36-
<RoutingContext {...renderProps} />
36+
<RouterContext {...renderProps} />
3737
);
3838
html = '<!doctype html>' + html;
3939
let write = fsp.writeFile(path.join(docsBuilt, fileName), html);

docs/client.js

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,9 @@ import CodeMirror from 'codemirror';
22
import 'codemirror/addon/runmode/runmode';
33
import 'codemirror/mode/jsx/jsx';
44

5-
import createBrowserHistory from 'history/lib/createBrowserHistory';
65
import React from 'react';
76
import ReactDOM from 'react-dom';
8-
import {Router} from 'react-router';
7+
import {Router, browserHistory} from 'react-router';
98

109
import Root from './src/Root';
1110
import routes from './src/Routes';
@@ -31,9 +30,7 @@ global.CodeMirror = CodeMirror;
3130
Root.assetBaseUrl = window.ASSET_BASE_URL;
3231
Root.propData = window.PROP_DATA;
3332

34-
const history = createBrowserHistory();
35-
3633
ReactDOM.render(
37-
<Router history={history} children={routes} />,
34+
<Router history={browserHistory} children={routes} />,
3835
document
3936
);

docs/generate-metadata.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@ export default function generate(destination, options = { mixins: true, inferCom
112112
return globp(__dirname + '/../src/**/*.js') // eslint-disable-line no-path-concat
113113
.then( files => {
114114
let results = files.map(
115-
filename => fsp.readFile(filename).then(content => metadata(content, options)));
115+
filename => fsp.readFile(filename, 'utf-8').then(content => metadata(content, options)));
116116

117117
return Promise.all(results)
118118
.then( data => {

docs/server.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import ip from 'ip';
77
import path from 'path';
88
import React from 'react';
99
import ReactDOMServer from 'react-dom/server';
10-
import {match, RoutingContext} from 'react-router';
10+
import {match, RouterContext} from 'react-router';
1111

1212
import Root from './src/Root';
1313
import routes from './src/Routes';
@@ -48,7 +48,7 @@ if (development) {
4848
const location = req.url;
4949
match({routes, location}, (error, redirectLocation, renderProps) => {
5050
const html = ReactDOMServer.renderToString(
51-
<RoutingContext {...renderProps} />
51+
<RouterContext {...renderProps} />
5252
);
5353
res.send('<!doctype html>' + html);
5454
});

docs/src/ReactPlayground.js

Lines changed: 65 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -7,71 +7,72 @@ const React = require('react');
77
const ReactDOM = require('react-dom');
88

99
// Keep these in sync with src/index.js.
10-
const Accordion = require('../../src/Accordion');
11-
const Alert = require('../../src/Alert');
12-
const Badge = require('../../src/Badge');
13-
const Breadcrumb = require('../../src/Breadcrumb');
14-
const Button = require('../../src/Button');
15-
const ButtonGroup = require('../../src/ButtonGroup');
16-
const ButtonToolbar = require('../../src/ButtonToolbar');
17-
const Carousel = require('../../src/Carousel');
18-
const CarouselItem = require('../../src/CarouselItem');
19-
const Checkbox = require('../../src/Checkbox');
20-
const Clearfix = require('../../src/Clearfix');
21-
const Col = require('../../src/Col');
22-
const Collapse = require('../../src/Collapse');
23-
const ControlLabel = require('../../src/ControlLabel');
24-
const Dropdown = require('../../src/Dropdown');
25-
const DropdownButton = require('../../src/DropdownButton');
26-
const Fade = require('../../src/Fade');
27-
const Form = require('../../src/Form');
28-
const FormControl = require('../../src/FormControl');
29-
const FormGroup = require('../../src/FormGroup');
30-
const Glyphicon = require('../../src/Glyphicon');
31-
const Grid = require('../../src/Grid');
32-
const HelpBlock = require('../../src/HelpBlock');
33-
const Image = require('../../src/Image');
34-
const InputGroup = require('../../src/InputGroup');
35-
const Jumbotron = require('../../src/Jumbotron');
36-
const Label = require('../../src/Label');
37-
const ListGroup = require('../../src/ListGroup');
38-
const ListGroupItem = require('../../src/ListGroupItem');
39-
const Media = require('../../src/Media');
40-
const MenuItem = require('../../src/MenuItem');
41-
const Modal = require('../../src/Modal');
42-
const Nav = require('../../src/Nav');
43-
const Navbar = require('../../src/Navbar');
44-
const NavbarBrand = require('../../src/NavbarBrand');
45-
const NavDropdown = require('../../src/NavDropdown');
46-
const NavItem = require('../../src/NavItem');
47-
const Overlay = require('../../src/Overlay');
48-
const OverlayTrigger = require('../../src/OverlayTrigger');
49-
const PageHeader = require('../../src/PageHeader');
50-
const Pager = require('../../src/Pager');
51-
const Pagination = require('../../src/Pagination');
52-
const Panel = require('../../src/Panel');
53-
const PanelGroup = require('../../src/PanelGroup');
54-
const Popover = require('../../src/Popover');
55-
const ProgressBar = require('../../src/ProgressBar');
56-
const Radio = require('../../src/Radio');
57-
const ResponsiveEmbed = require('../../src/ResponsiveEmbed');
58-
const Row = require('../../src/Row');
59-
const SafeAnchor = require('../../src/SafeAnchor');
60-
const SplitButton = require('../../src/SplitButton');
61-
const Tab = require('../../src/Tab');
62-
const TabContainer = require('../../src/TabContainer');
63-
const TabContent = require('../../src/TabContent');
64-
const Table = require('../../src/Table');
65-
const TabPane = require('../../src/TabPane');
66-
const Tabs = require('../../src/Tabs');
67-
const Thumbnail = require('../../src/Thumbnail');
68-
const Tooltip = require('../../src/Tooltip');
69-
const Well = require('../../src/Well');
10+
const Accordion = require('../../src/Accordion').default;
11+
const Alert = require('../../src/Alert').default;
12+
const Badge = require('../../src/Badge').default;
13+
const Breadcrumb = require('../../src/Breadcrumb').default;
14+
const Button = require('../../src/Button').default;
15+
const ButtonGroup = require('../../src/ButtonGroup').default;
16+
const ButtonToolbar = require('../../src/ButtonToolbar').default;
17+
const Carousel = require('../../src/Carousel').default;
18+
const CarouselItem = require('../../src/CarouselItem').default;
19+
const Checkbox = require('../../src/Checkbox').default;
20+
const Clearfix = require('../../src/Clearfix').default;
21+
const Col = require('../../src/Col').default;
22+
const Collapse = require('../../src/Collapse').default;
23+
const ControlLabel = require('../../src/ControlLabel').default;
24+
const Dropdown = require('../../src/Dropdown').default;
25+
const DropdownButton = require('../../src/DropdownButton').default;
26+
const Fade = require('../../src/Fade').default;
27+
const Form = require('../../src/Form').default;
28+
const FormControl = require('../../src/FormControl').default;
29+
const FormGroup = require('../../src/FormGroup').default;
30+
const Glyphicon = require('../../src/Glyphicon').default;
31+
const Grid = require('../../src/Grid').default;
32+
const HelpBlock = require('../../src/HelpBlock').default;
33+
const Image = require('../../src/Image').default;
34+
const InputGroup = require('../../src/InputGroup').default;
35+
const Jumbotron = require('../../src/Jumbotron').default;
36+
const Label = require('../../src/Label').default;
37+
const ListGroup = require('../../src/ListGroup').default;
38+
const ListGroupItem = require('../../src/ListGroupItem').default;
39+
const Media = require('../../src/Media').default;
40+
const MenuItem = require('../../src/MenuItem').default;
41+
const Modal = require('../../src/Modal').default;
42+
const Nav = require('../../src/Nav').default;
43+
const Navbar = require('../../src/Navbar').default;
44+
const NavbarBrand = require('../../src/NavbarBrand').default;
45+
const NavDropdown = require('../../src/NavDropdown').default;
46+
const NavItem = require('../../src/NavItem').default;
47+
const Overlay = require('../../src/Overlay').default;
48+
const OverlayTrigger = require('../../src/OverlayTrigger').default;
49+
const PageHeader = require('../../src/PageHeader').default;
50+
const Pager = require('../../src/Pager').default;
51+
const Pagination = require('../../src/Pagination').default;
52+
const Panel = require('../../src/Panel').default;
53+
const PanelGroup = require('../../src/PanelGroup').default;
54+
const Popover = require('../../src/Popover').default;
55+
const ProgressBar = require('../../src/ProgressBar').default;
56+
const Radio = require('../../src/Radio').default;
57+
const ResponsiveEmbed = require('../../src/ResponsiveEmbed').default;
58+
const Row = require('../../src/Row').default;
59+
const SafeAnchor = require('../../src/SafeAnchor').default;
60+
const SplitButton = require('../../src/SplitButton').default;
61+
const Tab = require('../../src/Tab').default;
62+
const TabContainer = require('../../src/TabContainer').default;
63+
const TabContent = require('../../src/TabContent').default;
64+
const Table = require('../../src/Table').default;
65+
const TabPane = require('../../src/TabPane').default;
66+
const Tabs = require('../../src/Tabs').default;
67+
const Thumbnail = require('../../src/Thumbnail').default;
68+
const Tooltip = require('../../src/Tooltip').default;
69+
const Well = require('../../src/Well').default;
7070

7171
const bootstrapUtils = require('../../src/utils/bootstrapUtils');
72+
7273
/* eslint-enable */
7374

74-
import babel from 'babel-core/browser';
75+
import {transform} from 'babel-standalone';
7576
import CodeExample from './CodeExample';
7677

7778
const IS_MOBILE = typeof navigator !== 'undefined' && (
@@ -165,7 +166,9 @@ const ReactPlayground = React.createClass({
165166
getDefaultProps() {
166167
return {
167168
transformer(code) {
168-
return babel.transform(code).code;
169+
return transform(code, {
170+
presets: ['es2015-loose', 'react', 'stage-1']
171+
}).code;
169172
}
170173
};
171174
},

karma.conf.js

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
require('babel/register');
2-
1+
require('babel-register');
32
const path = require('path');
43
const merge = require('webpack-merge');
54

package.json

Lines changed: 19 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,12 @@
2121
"test-node": "mocha --compilers js:babel-core/register test/server/*Spec.js"
2222
},
2323
"main": "lib/index.js",
24+
"jsnext:main": "es6/index.js",
2425
"files": [
2526
"CHANGELOG.md",
2627
"lib",
27-
"dist"
28+
"dist",
29+
"es6"
2830
],
2931
"keywords": [
3032
"react",
@@ -39,11 +41,19 @@
3941
"react-dom": ">=0.14.0"
4042
},
4143
"devDependencies": {
42-
"babel": "^5.8.38",
43-
"babel-core": "^5.8.38",
44-
"babel-eslint": "^4.1.8",
45-
"babel-loader": "^5.4.0",
46-
"babel-plugin-dev-expression": "^0.1.0",
44+
"babel-cli": "^6.11.4",
45+
"babel-eslint": "^6.1.0",
46+
"babel-loader": "^6.2.4",
47+
"babel-plugin-transform-es3-member-expression-literals": "^6.8.0",
48+
"babel-plugin-transform-es3-property-literals": "^6.8.0",
49+
"babel-plugin-transform-runtime": "^6.12.0",
50+
"babel-preset-es2015": "^6.9.0",
51+
"babel-preset-es2015-loose": "^7.0.0",
52+
"babel-preset-es2015-webpack": "^6.4.2",
53+
"babel-preset-es2015-webpack-loose": "^6.3.14",
54+
"babel-preset-react": "^6.11.1",
55+
"babel-preset-stage-1": "^6.5.0",
56+
"babel-standalone": "^6.12.0",
4757
"bootstrap": "^3.3.6",
4858
"brfs": "^1.4.3",
4959
"chai": "^3.5.0",
@@ -61,8 +71,6 @@
6171
"file-loader": "^0.9.0",
6272
"fs-extra": "^0.30.0",
6373
"fs-promise": "^0.5.0",
64-
"glob": "^7.0.5",
65-
"history": "^1.17.0",
6674
"http-proxy": "^1.14.0",
6775
"ip": "^1.1.3",
6876
"isparta-loader": "^1.0.0",
@@ -88,10 +96,10 @@
8896
"output-file-sync": "^1.1.2",
8997
"portfinder": "^1.0.3",
9098
"react": "^15.3.0",
91-
"react-component-metadata": "^2.1.1",
99+
"react-component-metadata": "^3.0.0",
92100
"react-dom": "^15.3.0",
93101
"react-hot-loader": "^1.3.0",
94-
"react-router": "^1.0.3",
102+
"react-router": "^2.6.1",
95103
"react-waypoint": "^3.0.0",
96104
"release-script": "^1.0.2",
97105
"rimraf": "^2.5.3",
@@ -107,7 +115,7 @@
107115
"yargs": "^4.7.1"
108116
},
109117
"dependencies": {
110-
"babel-runtime": "^5.8.38",
118+
"babel-runtime": "^6.11.6",
111119
"classnames": "^2.2.5",
112120
"dom-helpers": "^2.4.0",
113121
"invariant": "^2.2.1",

tools/build.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import 'colors';
22
import bower from './amd/build';
33
import lib from './lib/build';
4+
import es6 from './es6/build';
45
import dist from './dist/build';
56
import { copy } from './fs-utils';
67
import { distRoot, bowerRoot } from './constants';
@@ -18,6 +19,7 @@ function forkAndBuildDocs({verbose}) {
1819
export default function Build(options) {
1920
return Promise.all([
2021
lib(),
22+
es6(),
2123
bower(),
2224
dist(),
2325
forkAndBuildDocs(options)

tools/buildBabel.js

Lines changed: 4 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,15 @@
11
import { transform } from 'babel-core';
2-
import glob from 'glob';
32
import fs from 'fs';
43
import path from 'path';
54
import outputFileSync from 'output-file-sync';
65

7-
export function buildContent(content, filename, destination, babelOptions = {}) {
6+
function buildContent(content, filename, destination, babelOptions = {}) {
87
babelOptions.filename = filename;
98
const result = transform(content, babelOptions);
109
outputFileSync(destination, result.code, {encoding: 'utf8'});
1110
}
1211

13-
export function buildFile(filename, destination, babelOptions = {}) {
12+
function buildFile(filename, destination, babelOptions = {}) {
1413
const content = fs.readFileSync(filename, {encoding: 'utf8'});
1514
// We only have .js files that we need to build
1615
if (path.extname(filename) === '.js') {
@@ -20,22 +19,14 @@ export function buildFile(filename, destination, babelOptions = {}) {
2019
}
2120
}
2221

23-
export function buildFolder(folderPath, destination, babelOptions = {}, firstFolder = true) {
22+
export default function buildBabel(folderPath, destination, babelOptions = {}, firstFolder = true) {
2423
let stats = fs.statSync(folderPath);
2524

2625
if (stats.isFile()) {
2726
buildFile(folderPath, destination, babelOptions);
2827
} else if (stats.isDirectory()) {
2928
let outputPath = firstFolder ? destination : path.join(destination, path.basename(folderPath));
3029
let files = fs.readdirSync(folderPath).map(file => path.join(folderPath, file));
31-
files.forEach(filename => buildFolder(filename, outputPath, babelOptions, false));
30+
files.forEach(filename => buildBabel(filename, outputPath, babelOptions, false));
3231
}
3332
}
34-
35-
export function buildGlob(filesGlob, destination, babelOptions = {}) {
36-
let files = glob.sync(filesGlob);
37-
if (!files.length) {
38-
files = [filesGlob];
39-
}
40-
files.forEach(filename => buildFolder(filename, destination, babelOptions, true));
41-
}

tools/constants.js

Lines changed: 7 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,10 @@
11
import path from 'path';
22

3-
const repoRoot = path.resolve(__dirname, '../');
3+
export const repoRoot = path.resolve(__dirname, '../');
44

5-
const srcRoot = path.join(repoRoot, 'src/');
6-
const distRoot = path.join(repoRoot, 'dist/');
7-
const libRoot = path.join(repoRoot, 'lib/');
8-
const bowerRoot = path.join(repoRoot, 'amd/');
9-
const docsRoot = path.join(repoRoot, 'docs-built/');
10-
11-
export {
12-
repoRoot,
13-
srcRoot,
14-
distRoot,
15-
libRoot,
16-
bowerRoot,
17-
docsRoot
18-
};
5+
export const srcRoot = path.join(repoRoot, 'src/');
6+
export const distRoot = path.join(repoRoot, 'dist/');
7+
export const libRoot = path.join(repoRoot, 'lib/');
8+
export const es6Root = path.join(repoRoot, 'es6/');
9+
export const bowerRoot = path.join(repoRoot, 'amd/');
10+
export const docsRoot = path.join(repoRoot, 'docs-built/');

0 commit comments

Comments
 (0)