Skip to content

Commit bb13f74

Browse files
committed
Simplified build setup a little bit
1 parent cfafab1 commit bb13f74

File tree

6 files changed

+69
-59
lines changed

6 files changed

+69
-59
lines changed

.babelrc.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
1+
const { BABEL_ENV, NODE_ENV } = process.env;
2+
const modules = BABEL_ENV === 'cjs' || NODE_ENV === 'test' ? 'commonjs' : false;
13
const loose = true;
24

35
module.exports = {
46
presets: [
57
['@babel/env', {
68
loose,
7-
modules: false,
9+
modules: modules,
810
exclude: ['transform-typeof-symbol'],
911
}],
1012
],

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
11
node_modules
22
lib
33
es
4+
dist/react-onclickoutside.es.js
5+
dist/react-onclickoutside.cjs.js

dist/react-onclickoutside.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 7 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,10 @@
22
"name": "react-onclickoutside",
33
"version": "6.7.0",
44
"description": "An onClickOutside wrapper for React components",
5-
"main": "lib/index.js",
6-
"module": "es/index.js",
7-
"jsnext:main": "es/index.js",
5+
"main": "dist/react-onclickoutside.cjs.js",
6+
"module": "dist/react-onclickoutside.es.js",
7+
"jsnext:main": "dist/react-onclickoutside.es.js",
88
"files": [
9-
"es",
10-
"lib",
119
"dist"
1210
],
1311
"unpkg": "dist/react-onclickoutside.min.js",
@@ -31,16 +29,12 @@
3129
"url": "https://github.com/Pomax/react-onclickoutside/issues"
3230
},
3331
"scripts": {
34-
"clean": "rimraf es lib dist",
32+
"clean": "rimraf dist",
3533
"prebuild": "npm run clean",
36-
"build": "run-p build:**",
37-
"build:es": "cross-env BABEL_ENV=es rollup -c -i src/index.js -o es/index.js",
38-
"build:cjs": "cross-env BABEL_ENV=cjs rollup -c -i src/index.js -o lib/index.js",
39-
"build:umd": "cross-env BABEL_ENV=es NODE_ENV=development rollup -c rollup.umd.config.js -i src/index.js -o dist/react-onclickoutside.js",
40-
"build:umd:min": "cross-env BABEL_ENV=es NODE_ENV=production rollup -c rollup.umd.config.js -i src/index.js -o dist/react-onclickoutside.min.js",
34+
"build": "rollup -c",
4135
"lint": "eslint src/*.js ./test",
4236
"test": "run-s test:**",
43-
"test:basic": "run-s lint build:cjs",
37+
"test:basic": "run-s lint build",
4438
"test:karma": "karma start test/karma.conf.js --single-run",
4539
"test:nodom": "mocha test/no-dom-test.js",
4640
"precommit": "npm test && lint-staged",
@@ -60,7 +54,6 @@
6054
"babel-eslint": "^8.0.2",
6155
"babel-loader": "8.0.0-beta.0",
6256
"chai": "^4.1.2",
63-
"cross-env": "^5.0.0",
6457
"eslint": "^4.12.0",
6558
"husky": "^0.14.3",
6659
"karma": "^1.4.0",
@@ -79,7 +72,7 @@
7972
"require-hijack": "^1.2.1",
8073
"rimraf": "^2.6.2",
8174
"rollup": "^0.52.0",
82-
"rollup-plugin-babel": "^4.0.0-beta.0",
75+
"rollup-plugin-babel": "4.0.0-beta.0",
8376
"rollup-plugin-uglify": "^2.0.1",
8477
"webpack": "^3.8.1"
8578
},

rollup.config.js

Lines changed: 56 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,60 @@
11
import babel from 'rollup-plugin-babel';
2+
import uglify from 'rollup-plugin-uglify';
3+
import pkg from './package.json';
24

3-
var config = {
4-
output: {
5-
format: process.env.BABEL_ENV,
6-
exports: 'named',
7-
},
8-
external: ['react', 'react-dom'],
9-
plugins: [
10-
babel({
11-
exclude: 'node_modules/**',
12-
}),
13-
],
5+
const mergeAll = objs => Object.assign({}, ...objs);
6+
7+
const commonPlugins = [
8+
babel({
9+
exclude: 'node_modules/**',
10+
}),
11+
];
12+
13+
const configBase = {
14+
input: 'src/index.js',
15+
external: Object.keys(pkg.dependencies || {}).concat(Object.keys(pkg.peerDependencies || {})),
16+
plugins: commonPlugins,
1417
};
1518

16-
export default config;
19+
const devUmdConfig = mergeAll([
20+
configBase,
21+
{
22+
output: {
23+
file: pkg.unpkg.replace(/\.min\.js$/, '.js'),
24+
format: 'umd',
25+
name: 'onClickOutside',
26+
exports: 'named',
27+
},
28+
globals: { react: 'React', 'react-dom': 'ReactDOM' },
29+
external: Object.keys(pkg.peerDependencies || {}),
30+
},
31+
]);
32+
33+
const prodUmdConfig = mergeAll([
34+
devUmdConfig,
35+
{ output: mergeAll([devUmdConfig.output, { file: pkg.unpkg }]) },
36+
{
37+
plugins: devUmdConfig.plugins.concat(
38+
uglify({
39+
compress: {
40+
pure_getters: true,
41+
unsafe: true,
42+
unsafe_comps: true,
43+
warnings: false,
44+
},
45+
})
46+
),
47+
},
48+
]);
49+
50+
const webConfig = mergeAll([
51+
configBase,
52+
{
53+
output: [
54+
{ file: pkg.module, format: 'es' },
55+
{ file: pkg.main, format: 'cjs', exports: 'named' }
56+
],
57+
},
58+
]);
59+
60+
export default [devUmdConfig, prodUmdConfig, webConfig];

rollup.umd.config.js

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

0 commit comments

Comments
 (0)