From 6f5095fdcdb5f4506c2684acf980d7457af06748 Mon Sep 17 00:00:00 2001 From: Billy Janitsch Date: Wed, 1 Feb 2017 12:49:33 -0500 Subject: [PATCH] Add ES build to react-router and react-router-dom --- packages/react-router-dom/.gitignore | 1 + packages/react-router-dom/modules/.babelrc | 2 +- packages/react-router-dom/modules/BrowserRouter.js | 2 +- packages/react-router-dom/modules/HashRouter.js | 2 +- packages/react-router-dom/modules/MemoryRouter.js | 2 +- packages/react-router-dom/modules/NavLink.js | 2 +- packages/react-router-dom/modules/Prompt.js | 2 +- packages/react-router-dom/modules/Redirect.js | 2 +- packages/react-router-dom/modules/Route.js | 2 +- packages/react-router-dom/modules/Router.js | 2 +- packages/react-router-dom/modules/StaticRouter.js | 2 +- packages/react-router-dom/modules/Switch.js | 2 +- packages/react-router-dom/modules/matchPath.js | 2 +- packages/react-router-dom/modules/withRouter.js | 2 +- packages/react-router-dom/package.json | 5 ++++- packages/react-router-dom/scripts/build.js | 1 + packages/react-router-dom/tools/es2015Preset.js | 12 ++++++++++++ packages/react-router/.gitignore | 1 + packages/react-router/modules/.babelrc | 2 +- packages/react-router/package.json | 5 ++++- packages/react-router/scripts/build.js | 1 + packages/react-router/tools/es2015Preset.js | 12 ++++++++++++ 22 files changed, 50 insertions(+), 16 deletions(-) create mode 100644 packages/react-router-dom/tools/es2015Preset.js create mode 100644 packages/react-router/tools/es2015Preset.js diff --git a/packages/react-router-dom/.gitignore b/packages/react-router-dom/.gitignore index 5ec9a2469b..146d74b47e 100644 --- a/packages/react-router-dom/.gitignore +++ b/packages/react-router-dom/.gitignore @@ -1,3 +1,4 @@ +es umd node_modules /*.js diff --git a/packages/react-router-dom/modules/.babelrc b/packages/react-router-dom/modules/.babelrc index 6e9a4f60c4..9c0327242a 100644 --- a/packages/react-router-dom/modules/.babelrc +++ b/packages/react-router-dom/modules/.babelrc @@ -1,6 +1,6 @@ { "presets": [ - [ "es2015", { "loose": true } ], + "../tools/es2015Preset", "stage-1", "react" ], diff --git a/packages/react-router-dom/modules/BrowserRouter.js b/packages/react-router-dom/modules/BrowserRouter.js index 9b53448f56..f4762e019a 100644 --- a/packages/react-router-dom/modules/BrowserRouter.js +++ b/packages/react-router-dom/modules/BrowserRouter.js @@ -1,6 +1,6 @@ import React, { PropTypes } from 'react' import createHistory from 'history/createBrowserHistory' -import Router from 'react-router/Router' +import { Router } from 'react-router' /** * The public API for a that uses HTML5 history. diff --git a/packages/react-router-dom/modules/HashRouter.js b/packages/react-router-dom/modules/HashRouter.js index 1738d47112..a14f8b482e 100644 --- a/packages/react-router-dom/modules/HashRouter.js +++ b/packages/react-router-dom/modules/HashRouter.js @@ -1,6 +1,6 @@ import React, { PropTypes } from 'react' import createHistory from 'history/createHashHistory' -import Router from 'react-router/Router' +import { Router } from 'react-router' /** * The public API for a that uses window.location.hash. diff --git a/packages/react-router-dom/modules/MemoryRouter.js b/packages/react-router-dom/modules/MemoryRouter.js index c172549183..66e778d3eb 100644 --- a/packages/react-router-dom/modules/MemoryRouter.js +++ b/packages/react-router-dom/modules/MemoryRouter.js @@ -1 +1 @@ -export default from 'react-router/MemoryRouter' +export { MemoryRouter as default } from 'react-router' diff --git a/packages/react-router-dom/modules/NavLink.js b/packages/react-router-dom/modules/NavLink.js index 782200977a..afb4346194 100644 --- a/packages/react-router-dom/modules/NavLink.js +++ b/packages/react-router-dom/modules/NavLink.js @@ -1,5 +1,5 @@ import React, { PropTypes } from 'react' -import Route from 'react-router/Route' +import { Route } from 'react-router' import Link from './Link' /** diff --git a/packages/react-router-dom/modules/Prompt.js b/packages/react-router-dom/modules/Prompt.js index 6ba53a64be..164f5d01cf 100644 --- a/packages/react-router-dom/modules/Prompt.js +++ b/packages/react-router-dom/modules/Prompt.js @@ -1 +1 @@ -export default from 'react-router/Prompt' +export { Prompt as default } from 'react-router' diff --git a/packages/react-router-dom/modules/Redirect.js b/packages/react-router-dom/modules/Redirect.js index 2aff99c83b..7fc093dfdb 100644 --- a/packages/react-router-dom/modules/Redirect.js +++ b/packages/react-router-dom/modules/Redirect.js @@ -1 +1 @@ -export default from 'react-router/Redirect' +export { Redirect as default } from 'react-router' diff --git a/packages/react-router-dom/modules/Route.js b/packages/react-router-dom/modules/Route.js index 6f47aef819..72ae297396 100644 --- a/packages/react-router-dom/modules/Route.js +++ b/packages/react-router-dom/modules/Route.js @@ -1 +1 @@ -export default from 'react-router/Route' +export { Route as default } from 'react-router' diff --git a/packages/react-router-dom/modules/Router.js b/packages/react-router-dom/modules/Router.js index 84aa363742..671c9c9598 100644 --- a/packages/react-router-dom/modules/Router.js +++ b/packages/react-router-dom/modules/Router.js @@ -1 +1 @@ -export default from 'react-router/Router' +export { Router as default } from 'react-router' diff --git a/packages/react-router-dom/modules/StaticRouter.js b/packages/react-router-dom/modules/StaticRouter.js index 01f9f6d85e..165dde4580 100644 --- a/packages/react-router-dom/modules/StaticRouter.js +++ b/packages/react-router-dom/modules/StaticRouter.js @@ -1 +1 @@ -export default from 'react-router/StaticRouter' +export { StaticRouter as default } from 'react-router' diff --git a/packages/react-router-dom/modules/Switch.js b/packages/react-router-dom/modules/Switch.js index 06d50d6829..3a66298933 100644 --- a/packages/react-router-dom/modules/Switch.js +++ b/packages/react-router-dom/modules/Switch.js @@ -1 +1 @@ -export default from 'react-router/Switch' +export { Switch as default } from 'react-router' diff --git a/packages/react-router-dom/modules/matchPath.js b/packages/react-router-dom/modules/matchPath.js index c74603ad3f..e401832932 100644 --- a/packages/react-router-dom/modules/matchPath.js +++ b/packages/react-router-dom/modules/matchPath.js @@ -1 +1 @@ -export default from 'react-router/matchPath' +export { matchPath as default } from 'react-router' diff --git a/packages/react-router-dom/modules/withRouter.js b/packages/react-router-dom/modules/withRouter.js index 2d833e1a01..ef84195b9c 100644 --- a/packages/react-router-dom/modules/withRouter.js +++ b/packages/react-router-dom/modules/withRouter.js @@ -1 +1 @@ -export default from 'react-router/withRouter' +export { withRouter as default } from 'react-router' diff --git a/packages/react-router-dom/package.json b/packages/react-router-dom/package.json index 7f223def53..c4843b46e4 100644 --- a/packages/react-router-dom/package.json +++ b/packages/react-router-dom/package.json @@ -24,11 +24,14 @@ "matchPath.js", "withRouter.js", "README.md", + "es", "umd" ], "main": "index.js", + "module": "es/index.js", "scripts": { - "build-lib": "babel ./modules -d . --ignore __tests__", + "build-es": "BABEL_ENV=es babel modules -d es --ignore __tests__", + "build-lib": "BABEL_ENV=cjs babel modules -d . --ignore __tests__", "build-umd": "webpack modules/index.js umd/react-router-dom.js", "build-min": "webpack -p modules/index.js umd/react-router-dom.min.js", "build": "node ./scripts/build.js", diff --git a/packages/react-router-dom/scripts/build.js b/packages/react-router-dom/scripts/build.js index 8c9b035f1b..88ab036121 100644 --- a/packages/react-router-dom/scripts/build.js +++ b/packages/react-router-dom/scripts/build.js @@ -15,6 +15,7 @@ const webpackEnv = Object.assign({}, process.env, { NODE_ENV: 'production' }) +exec('npm run build-es') exec('npm run build-lib') exec('npm run build-umd', webpackEnv) exec('npm run build-min', webpackEnv) diff --git a/packages/react-router-dom/tools/es2015Preset.js b/packages/react-router-dom/tools/es2015Preset.js new file mode 100644 index 0000000000..4dc8900fe7 --- /dev/null +++ b/packages/react-router-dom/tools/es2015Preset.js @@ -0,0 +1,12 @@ +const buildPreset = require('babel-preset-es2015').buildPreset + +const BABEL_ENV = process.env.BABEL_ENV + +module.exports = { + presets: [ + [ buildPreset, { + loose: true, + modules: BABEL_ENV === 'es' ? false : 'commonjs' + } ] + ] +} diff --git a/packages/react-router/.gitignore b/packages/react-router/.gitignore index 5ec9a2469b..146d74b47e 100644 --- a/packages/react-router/.gitignore +++ b/packages/react-router/.gitignore @@ -1,3 +1,4 @@ +es umd node_modules /*.js diff --git a/packages/react-router/modules/.babelrc b/packages/react-router/modules/.babelrc index 677b8c34ac..834af41f9e 100644 --- a/packages/react-router/modules/.babelrc +++ b/packages/react-router/modules/.babelrc @@ -1,6 +1,6 @@ { "presets": [ - [ "es2015", { "loose": true } ], + "../tools/es2015Preset", "stage-1", "react" ], diff --git a/packages/react-router/package.json b/packages/react-router/package.json index 4e527cdcc4..4ee3b14944 100644 --- a/packages/react-router/package.json +++ b/packages/react-router/package.json @@ -20,11 +20,14 @@ "matchPath.js", "withRouter.js", "README.md", + "es", "umd" ], "main": "index.js", + "module": "es/index.js", "scripts": { - "build-lib": "babel ./modules -d . --ignore __tests__", + "build-es": "BABEL_ENV=es babel modules -d es --ignore __tests__", + "build-lib": "BABEL_ENV=cjs babel modules -d . --ignore __tests__", "build-umd": "webpack modules/index.js umd/react-router.js", "build-min": "webpack -p modules/index.js umd/react-router.min.js", "build": "node ./scripts/build.js", diff --git a/packages/react-router/scripts/build.js b/packages/react-router/scripts/build.js index 7f85d44ccb..424551f202 100644 --- a/packages/react-router/scripts/build.js +++ b/packages/react-router/scripts/build.js @@ -15,6 +15,7 @@ const webpackEnv = Object.assign({}, process.env, { NODE_ENV: 'production' }) +exec('npm run build-es') exec('npm run build-lib') exec('npm run build-umd', webpackEnv) exec('npm run build-min', webpackEnv) diff --git a/packages/react-router/tools/es2015Preset.js b/packages/react-router/tools/es2015Preset.js new file mode 100644 index 0000000000..4dc8900fe7 --- /dev/null +++ b/packages/react-router/tools/es2015Preset.js @@ -0,0 +1,12 @@ +const buildPreset = require('babel-preset-es2015').buildPreset + +const BABEL_ENV = process.env.BABEL_ENV + +module.exports = { + presets: [ + [ buildPreset, { + loose: true, + modules: BABEL_ENV === 'es' ? false : 'commonjs' + } ] + ] +}