Skip to content

Commit e90ea5c

Browse files
committed
build: add tree shaking
1 parent 5f9b715 commit e90ea5c

File tree

4 files changed

+61
-53
lines changed

4 files changed

+61
-53
lines changed

packages/coreui-react/package.json

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -23,16 +23,20 @@
2323
},
2424
"license": "MIT",
2525
"author": "The CoreUI Team (https://github.com/orgs/coreui/people)",
26-
"main": "dist/index.js",
27-
"module": "dist/index.es.js",
28-
"jsnext:main": "dist/index.es.js",
29-
"types": "dist/index.d.ts",
26+
"main": "dist/cjs/index.js",
27+
"module": "dist/esm/index.js",
28+
"jsnext:main": "dist/esm/index.js",
29+
"types": "dist/esm/index.d.ts",
3030
"files": [
3131
"dist/",
3232
"src/"
3333
],
34+
"sideEffects": false,
3435
"scripts": {
35-
"build": "rollup -c --bundleConfigAsCjs",
36+
"build": "npm-run-all clean build-*",
37+
"build-cjs": "rollup --environment ESM:false --config",
38+
"build-esm": "rollup --environment ESM:true --config",
39+
"clean": "cross-env-shell \"rm -rf dist\"",
3640
"test": "jest --coverage",
3741
"test:update": "jest --coverage --updateSnapshot"
3842
},
@@ -47,6 +51,7 @@
4751
"@types/react-dom": "^18.2.14",
4852
"@types/react-transition-group": "^4.4.8",
4953
"classnames": "^2.3.2",
54+
"cross-env": "^7.0.3",
5055
"jest": "^29.7.0",
5156
"jest-environment-jsdom": "^29.7.0",
5257
"prop-types": "^15.8.1",
@@ -61,6 +66,8 @@
6166
},
6267
"peerDependencies": {
6368
"@coreui/coreui": "^5.0.0-alpha.3",
69+
"@popperjs/core": "^2.11.8",
70+
"prop-types": "^15.8.1",
6471
"react": ">=17",
6572
"react-dom": ">=17"
6673
}

packages/coreui-react/rollup.config.js

Lines changed: 0 additions & 45 deletions
This file was deleted.
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
import commonjs from '@rollup/plugin-commonjs'
2+
import resolve from '@rollup/plugin-node-resolve'
3+
import typescript from '@rollup/plugin-typescript'
4+
import { readFileSync } from 'node:fs'
5+
import { dirname } from 'node:path'
6+
7+
const pkg = JSON.parse(readFileSync(new URL('./package.json', import.meta.url)))
8+
9+
const DIR_CJS = dirname(pkg.main)
10+
const DIR_ESM = dirname(pkg.module)
11+
const ESM = process.env.ESM === 'true'
12+
13+
const plugins = [
14+
resolve(),
15+
typescript({
16+
exclude: ['**/__tests__/**'],
17+
tsconfig: './tsconfig.json',
18+
compilerOptions: {
19+
declarationDir: ESM ? DIR_ESM : DIR_CJS,
20+
outDir: ESM ? DIR_ESM : DIR_CJS,
21+
},
22+
}),
23+
commonjs({
24+
include: ['../../node_modules/**'],
25+
}),
26+
]
27+
28+
const external = ['@popperjs/core', 'prop-types', 'react', 'react-dom']
29+
30+
const rollupConfig = {
31+
input: 'src/index.ts',
32+
output: {
33+
dir: ESM ? DIR_ESM : DIR_CJS,
34+
format: ESM ? 'esm' : 'cjs',
35+
exports: 'named',
36+
preserveModules: true,
37+
preserveModulesRoot: 'src',
38+
sourcemap: true,
39+
sourcemapPathTransform: (relativeSourcePath) => {
40+
return relativeSourcePath
41+
.replace('../../node_modules/', '../')
42+
.replace('../src/', 'src/')
43+
},
44+
},
45+
external,
46+
plugins,
47+
}
48+
49+
export default rollupConfig

packages/coreui-react/tsconfig.json

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,4 @@
11
{
22
"extends": "../../tsconfig",
3-
"compilerOptions": {
4-
"declarationDir": "."
5-
},
63
"include": ["src/**/*"]
74
}

0 commit comments

Comments
 (0)