Skip to content

Commit 953ffdd

Browse files
build: reduce bundle size + preserve module (#427)
Co-authored-by: Ben Carleton <[email protected]>
1 parent 925bb06 commit 953ffdd

File tree

3 files changed

+22
-15
lines changed

3 files changed

+22
-15
lines changed

package.json

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,8 @@
33
"version": "0.0.0-development",
44
"description": "The React library to build dashboards faster.",
55
"scripts": {
6-
"rollup": "rollup -c",
6+
"prebuild": "rm -rf dist",
7+
"build": "rollup -c",
78
"lint": "eslint \"{**/*,*}.{js,ts,jsx,tsx}\"",
89
"prettier": "prettier --write \"{src,types,tests,example/src}/**/*.{js,ts,jsx,tsx}\"",
910
"tests": "jest",
@@ -94,8 +95,8 @@
9495
"react": "^18.0.0",
9596
"react-dom": ">=16.6.0"
9697
},
97-
"main": "dist/cjs/index.js",
98-
"module": "dist/esm/index.js",
98+
"main": "dist/index.cjs",
99+
"module": "dist/index.js",
99100
"files": [
100101
"dist"
101102
],

rollup.config.js

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,40 +6,47 @@ import typescript from "@rollup/plugin-typescript";
66

77
import dts from "rollup-plugin-dts";
88
import peerDepsExternal from "rollup-plugin-peer-deps-external";
9-
import { terser } from "rollup-plugin-terser";
109
import { typescriptPaths } from "rollup-plugin-typescript-paths";
10+
import { terser } from "rollup-plugin-terser";
1111

12-
const packageJson = require("./package.json");
12+
const outputOptions = {
13+
sourcemap: false,
14+
preserveModules: true,
15+
preserveModulesRoot: "src",
16+
};
1317

1418
export default [
1519
{
1620
input: "src/index.ts",
1721
output: [
1822
{
19-
file: packageJson.main,
23+
dir: "dist",
2024
format: "cjs",
21-
sourcemap: false,
25+
entryFileNames: "[name].cjs",
26+
exports: "auto",
27+
...outputOptions,
2228
},
2329
{
24-
file: packageJson.module,
30+
dir: "dist",
2531
format: "esm",
26-
sourcemap: false,
32+
...outputOptions,
2733
},
2834
],
35+
external: [/node_modules/],
2936
plugins: [
3037
peerDepsExternal(),
3138
resolve(),
3239
commonjs(),
40+
terser(),
3341
typescript({
3442
tsconfig: "./tsconfig.json",
3543
exclude: ["**/stories/**", "**/tests/**", "./styles.css"],
3644
}),
37-
terser(),
3845
typescriptPaths(),
3946
],
4047
},
4148
{
42-
input: "dist/esm/index.d.ts",
49+
input: "dist/index.d.ts",
4350
output: [{ file: "dist/index.d.ts", format: "esm" }],
4451
plugins: [dts()],
4552
external: [/\.css$/],

tsconfig.json

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,11 @@
77
"forceConsistentCasingInFileNames": true,
88
"strict": true,
99
"skipLibCheck": true,
10-
"jsx": "react",
11-
"module": "ESNext",
10+
"jsx": "react",
11+
"module": "ESNext",
1212
"declaration": true,
13-
"declarationDir": "types",
13+
"declarationDir": "dist",
1414
"sourceMap": false,
15-
"outDir": "dist",
1615
"moduleResolution": "node",
1716
"allowSyntheticDefaultImports": true,
1817
"emitDeclarationOnly": true,

0 commit comments

Comments
 (0)