Skip to content

Commit 64d1c05

Browse files
committed
Add ES modules build
1 parent 0f207ce commit 64d1c05

File tree

7 files changed

+62
-33
lines changed

7 files changed

+62
-33
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
es
12
node_modules
23
umd
34
/*.js

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,10 @@ Using [npm](https://www.npmjs.com/):
1919
Then with a module bundler like [webpack](https://webpack.github.io/), use as you would anything else:
2020

2121
```js
22-
// using an ES6 transpiler, like babel
22+
// using ES modules
2323
import Media from 'react-media'
2424

25-
// not using an ES6 transpiler
25+
// using CommonJS modules
2626
var Media = require('react-media')
2727
```
2828

modules/.babelrc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"presets": [
3-
[ "es2015", { "loose": true } ],
3+
"../tools/es2015-preset",
44
"stage-1",
55
"react"
66
],

package.json

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,10 @@
66
"author": "Michael Jackson",
77
"license": "MIT",
88
"scripts": {
9-
"build": "node ./scripts/build.js",
9+
"build": "node ./tools/build.js",
1010
"clean": "git clean -e '!node_modules' -fdX .",
11-
"build-lib": "babel ./modules -d . --ignore '__tests__'",
12-
"build-umd": "webpack modules/index.js umd/react-media.js",
13-
"build-min": "webpack -p modules/index.js umd/react-media.min.js",
1411
"release": "node ./scripts/release.js",
15-
"prepublish": "node ./scripts/build.js",
12+
"prepublish": "node ./tools/build.js",
1613
"lint": "eslint modules",
1714
"test": "npm run lint && karma start"
1815
},

scripts/build.js

Lines changed: 0 additions & 25 deletions
This file was deleted.

tools/build.js

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
const fs = require('fs')
2+
const execSync = require('child_process').execSync
3+
const inInstall = require('in-publish').inInstall
4+
const prettyBytes = require('pretty-bytes')
5+
const gzipSize = require('gzip-size')
6+
7+
if (inInstall())
8+
process.exit(0)
9+
10+
const exec = (command, extraEnv) =>
11+
execSync(command, {
12+
stdio: 'inherit',
13+
env: Object.assign({}, process.env, extraEnv)
14+
})
15+
16+
console.log('Building CommonJS modules ...')
17+
18+
exec('babel modules -d . --ignore __tests__', {
19+
BABEL_ENV: 'cjs'
20+
})
21+
22+
console.log('\nBuilding ES modules ...')
23+
24+
exec('babel modules -d es --ignore __tests__', {
25+
BABEL_ENV: 'es'
26+
})
27+
28+
console.log('\nBuilding react-media.js ...')
29+
30+
exec('webpack modules/index.js umd/react-media.js', {
31+
NODE_ENV: 'production'
32+
})
33+
34+
console.log('\nBuilding react-media.min.js ...')
35+
36+
exec('webpack -p modules/index.js umd/react-media.min.js', {
37+
NODE_ENV: 'production'
38+
})
39+
40+
const size = gzipSize.sync(
41+
fs.readFileSync('umd/react-media.min.js')
42+
)
43+
44+
console.log('\ngzipped, the UMD build is %s', prettyBytes(size))

tools/es2015-preset.js

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
const buildPreset = require('babel-preset-es2015').buildPreset
2+
3+
const BABEL_ENV = process.env.BABEL_ENV
4+
5+
module.exports = {
6+
presets: [
7+
[ buildPreset, {
8+
loose: true,
9+
modules: BABEL_ENV === 'es' ? false : 'commonjs'
10+
} ]
11+
]
12+
}

0 commit comments

Comments
 (0)