Skip to content

Commit f31bb41

Browse files
mxschmittmartijnrusschen
authored andcommitted
feat: enhanced rollup configuration (Hacker0x01#1883)
* feat: enhanced rollup configuration * feat: cleaned up
1 parent 1c9b616 commit f31bb41

File tree

5 files changed

+198
-116
lines changed

5 files changed

+198
-116
lines changed

package.json

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@
66
"license": "MIT",
77
"homepage": "https://github.com/Hacker0x01/react-datepicker",
88
"main": "lib/index.js",
9-
"module": "es",
9+
"browser": "dist/react-datepicker.min.js",
10+
"module": "es/index.js",
1011
"unpkg": "dist/react-datepicker.min.js",
1112
"style": "dist/react-datepicker.min.css",
1213
"files": [
@@ -83,7 +84,12 @@
8384
"rollup": "^1.20.2",
8485
"rollup-plugin-babel": "^4.3.3",
8586
"rollup-plugin-commonjs": "^10.0.2",
87+
"rollup-plugin-filesize": "^6.2.0",
88+
"rollup-plugin-local-resolve": "^1.0.7",
8689
"rollup-plugin-node-resolve": "^5.2.0",
90+
"rollup-plugin-peer-deps-external": "^2.2.0",
91+
"rollup-plugin-replace": "^2.2.0",
92+
"rollup-plugin-terser": "^5.1.1",
8793
"rollup-plugin-uglify": "^6.0.2",
8894
"sass-lint": "^1.13.1",
8995
"sass-loader": "^7.3.1",
@@ -124,10 +130,7 @@
124130
"css:modules:prod": "node-sass --output-style compressed src/stylesheets/datepicker-cssmodules.scss > dist/react-datepicker-cssmodules.min.css",
125131
"css:dev": "node-sass --output-style expanded src/stylesheets/datepicker.scss > dist/react-datepicker.css",
126132
"css:modules:dev": "node-sass --output-style expanded src/stylesheets/datepicker-cssmodules.scss > dist/react-datepicker-cssmodules.css",
127-
"build:es": "cross-env BABEL_ENV=es rollup -c -i src/index.jsx -o es/index.js",
128-
"build:cjs": "cross-env BABEL_ENV=cjs rollup -c -i src/index.jsx -o lib/index.js",
129-
"build:umd:dev": "cross-env BABEL_ENV=es rollup -c rollup.umd.config.js -i src/index.jsx -o dist/react-datepicker.js",
130-
"build:umd:prod": "cross-env BABEL_ENV=es rollup -c rollup.umd.config.js -i src/index.jsx -o dist/react-datepicker.min.js"
133+
"build:js": "rollup -c"
131134
},
132135
"lint-staged": {
133136
"*.{js,jsx,json,css,scss,md}": [

rollup.config.js

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

4-
import nodeResolve from "rollup-plugin-node-resolve";
54
import babel from "rollup-plugin-babel";
5+
import peerDepsExternal from "rollup-plugin-peer-deps-external";
6+
import resolve from "rollup-plugin-node-resolve";
67
import commonjs from "rollup-plugin-commonjs";
7-
import { list as babelHelpersList } from "@babel/helpers";
8+
import filesize from "rollup-plugin-filesize";
9+
import localResolve from "rollup-plugin-local-resolve";
10+
import { terser } from "rollup-plugin-terser";
11+
12+
import replace from "rollup-plugin-replace";
813
import pkg from "./package.json";
914

1015
// it's important to mark all subpackages of data-fns as externals
@@ -13,27 +18,53 @@ const dateFnsDirs = fs
1318
.readdirSync(path.join(".", "node_modules", "date-fns"))
1419
.map(d => `date-fns/${d}`);
1520

21+
const globals = {
22+
react: "React",
23+
"prop-types": "PropTypes",
24+
"react-onclickoutside": "onClickOutside",
25+
"react-popper": "ReactPopper",
26+
classnames: "classNames"
27+
};
28+
1629
const config = {
17-
output: {
18-
format: process.env.BABEL_ENV
19-
},
30+
input: "src/index.jsx",
31+
output: [
32+
{
33+
file: pkg.browser,
34+
format: "umd",
35+
name: "DatePicker",
36+
globals
37+
},
38+
{
39+
file: "dist/react-datepicker.js",
40+
format: "umd",
41+
name: "DatePicker",
42+
globals
43+
},
44+
{
45+
file: pkg.main,
46+
format: "cjs",
47+
name: "DatePicker"
48+
},
49+
{
50+
file: pkg.module,
51+
format: "es"
52+
}
53+
],
2054
plugins: [
21-
nodeResolve({
55+
resolve({
2256
mainFields: ["module"],
2357
extensions: [".js", ".jsx"]
2458
}),
25-
babel({
26-
exclude: "node_modules/**",
27-
plugins: [
28-
"@babel/plugin-external-helpers",
29-
"@babel/plugin-proposal-class-properties"
30-
],
31-
runtimeHelpers: true,
32-
externalHelpersWhitelist: babelHelpersList.filter(
33-
helperName => helperName !== "asyncGenerator"
34-
)
35-
}),
36-
commonjs()
59+
peerDepsExternal(),
60+
babel(),
61+
localResolve(),
62+
commonjs(),
63+
filesize(),
64+
terser(),
65+
replace({
66+
"process.env.NODE_ENV": JSON.stringify("production")
67+
})
3768
],
3869
external: Object.keys(pkg.dependencies)
3970
.concat(Object.keys(pkg.peerDependencies))

rollup.umd.config.js

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

webpack.config.js

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

0 commit comments

Comments
 (0)