Browse Source

add es5-shim

John 9 years ago
parent
commit
504996c978

+ 10 - 14
package.json

@@ -10,18 +10,24 @@
     "babel-core": "^6.9.0",
     "babel-eslint": "^6.0.4",
     "babel-loader": "^6.2.4",
+    "babel-plugin-transform-react-constant-elements": "^6.8.0",
+    "babel-plugin-transform-react-inline-elements": "^6.8.0",
+    "babel-plugin-transform-react-remove-prop-types": "^0.2.7",
     "babel-plugin-transform-runtime": "^6.9.0",
     "babel-polyfill": "^6.9.0",
     "babel-preset-es2015": "^6.9.0",
+    "babel-preset-es2015-loose": "^7.0.0",
     "babel-preset-react": "^6.5.0",
-    "babel-preset-stage-1": "^6.5.0",
+    "babel-preset-stage-0": "^6.5.0",
     "babel-register": "^6.9.0",
     "babel-runtime": "^6.9.0",
     "browser-sync": "^2.12.8",
     "chai": "^3.5.0",
+    "classnames": "^2.2.5",
     "cpy": "^4.0.1",
     "css-loader": "^0.23.1",
     "del": "^2.2.0",
+    "es5-shim": "^4.5.8",
     "eslint": "^2.10.2",
     "eslint-config-airbnb": "^9.0.1",
     "eslint-plugin-import": "^1.8.0",
@@ -38,6 +44,7 @@
     "json-loader": "^0.5.4",
     "markdown-it": "^6.0.2",
     "mocha": "^2.4.5",
+    "node-sass": "^3.4.2",
     "pixrem": "^3.0.0",
     "pleeease-filters": "^3.0.0",
     "postcss": "^5.0.21",
@@ -59,6 +66,7 @@
     "react-redux": "^4.4.5",
     "redux": "^3.5.2",
     "s3": "^4.4.0",
+    "sass-loader": "^3.1.2",
     "style-loader": "^0.13.1",
     "stylelint": "^6.4.1",
     "stylelint-config-standard": "^7.0.0",
@@ -66,19 +74,7 @@
     "webpack": "^1.13.0",
     "webpack-dev-middleware": "^1.6.1",
     "webpack-hot-middleware": "^2.10.0",
-    "whatwg-fetch": "^1.0.0",
-    "sass-loader": "^3.1.2",
-    "node-sass": "^3.4.2"
-  },
-  "babel": {
-    "presets": [
-      "react",
-      "es2015",
-      "stage-1"
-    ],
-    "plugins": [
-      "transform-runtime"
-    ]
+    "whatwg-fetch": "^1.0.0"
   },
   "eslintConfig": {
     "parser": "babel-eslint",

+ 1 - 1
src/components/content/Content.js

@@ -25,4 +25,4 @@ Content.propTypes = {
   html: React.PropTypes.string.isRequired,
 };
 
-export default Content;
+module.exports = Content;

+ 3 - 3
src/components/layout/Header.js

@@ -14,11 +14,11 @@ import Navigation from './Navigation';
 class Header extends React.Component {
 
   componentDidMount() {
-    window.componentHandler.upgradeElement(this.refs.root);
+    this.refs.root;
   }
 
   componentWillUnmount() {
-    window.componentHandler.downgradeElements(this.refs.root);
+    this.refs.root;
   }
 
   render() {
@@ -35,4 +35,4 @@ class Header extends React.Component {
 
 }
 
-export default Header;
+module.exports = Header;

+ 3 - 3
src/components/layout/Layout.js

@@ -15,11 +15,11 @@ import s from './Layout.css';
 class Layout extends React.Component {
 
   componentDidMount() {
-    window.componentHandler.upgradeElement(this.refs.root);
+    this.refs.root;
   }
 
   componentWillUnmount() {
-    window.componentHandler.downgradeElements(this.refs.root);
+    this.refs.root;
   }
 
   render() {
@@ -34,4 +34,4 @@ class Layout extends React.Component {
   }
 }
 
-export default Layout;
+module.exports = Layout;

+ 3 - 3
src/components/layout/Navigation.js

@@ -14,11 +14,11 @@ import { Link } from 'react-app';
 class Navigation extends React.Component {
 
   componentDidMount() {
-    window.componentHandler.upgradeElement(this.refs.root);
+    this.refs.root;
   }
 
   componentWillUnmount() {
-    window.componentHandler.downgradeElements(this.refs.root);
+    this.refs.root;
   }
 
   render() {
@@ -33,4 +33,4 @@ class Navigation extends React.Component {
 
 }
 
-export default Navigation;
+module.exports = Navigation;

+ 3 - 1
src/core/app.js

@@ -7,8 +7,10 @@
  * This source code is licensed under the MIT license found in the
  * LICENSE.txt file in the root directory of this source tree.
  */
-
+import 'es5-shim';
+import 'es5-shim/es5-sham';
 import 'babel-polyfill';
+
 import 'whatwg-fetch';
 import { createApp } from 'react-app';
 import store from './store';

+ 1 - 1
src/core/store.js

@@ -24,4 +24,4 @@ const store = createStore((state, action) => {
   }
 });
 
-export default store;
+module.exports = store;

+ 3 - 1
src/routes/about/index.js

@@ -10,7 +10,7 @@
 
 import { Content } from '../../components';
 
-export default {
+const about = {
 
   path: '/about',
 
@@ -32,3 +32,5 @@ export default {
   },
 
 };
+
+module.exports = about;

+ 3 - 1
src/routes/error/index.js

@@ -27,7 +27,7 @@ ErrorPage.propTypes = {
   stackTrace: React.PropTypes.string.isRequired,
 };
 
-export default {
+const error = {
 
   path: '/error',
 
@@ -51,3 +51,5 @@ export default {
   },
 
 };
+
+module.exports = error;

+ 3 - 1
src/routes/home/index.js

@@ -10,7 +10,7 @@
 
 import { Content } from '../../components';
 
-export default {
+const home = {
 
   path: '/',
 
@@ -32,3 +32,5 @@ export default {
   },
 
 };
+
+module.exports = home;

+ 1 - 1
src/routes/index.js

@@ -24,4 +24,4 @@ const routes = {
 
 };
 
-export default routes;
+module.exports = routes;

+ 0 - 1
src/static/index.html

@@ -13,7 +13,6 @@
   </head>
   <body>
     <div id="container"></div>
-    <script src="https://cdn.rawgit.com/tleunen/react-mdl/master/extra/material.min.js"></script>
     <script src="assets/bundle.js"></script>
   </body>
 </html>

+ 20 - 2
tools/webpack.config.js

@@ -11,7 +11,6 @@
 const path = require('path');
 const webpack = require('webpack');
 const extend = require('extend');
-const pkg = require('../package.json');
 
 const DEBUG = !(process.argv.slice(2) == '--release' || process.argv.slice(2) == '-r');
 const VERBOSE = process.argv.slice(2) == '--verbose' || process.argv.slice(2) == '-v';
@@ -86,7 +85,26 @@ const config = {
           path.resolve(__dirname, '../src/routes'),
         ],
         loader: 'babel-loader',
-        query: extend({}, pkg.babel, { babelrc: false }),
+        query: {
+          // https://github.com/babel/babel-loader#options
+          cacheDirectory: DEBUG,
+
+          // https://babeljs.io/docs/usage/options/
+          babelrc: false,
+          presets: [
+            'react',
+            'es2015-loose',
+            'stage-0',
+          ],
+          plugins: [
+            'transform-runtime',
+            ...DEBUG ? [] : [
+              'transform-react-remove-prop-types',
+              'transform-react-constant-elements',
+              'transform-react-inline-elements',
+            ],
+          ],
+        },
       },
       {
         test: /\.css/,