Skip to content
This repository was archived by the owner on Dec 5, 2024. It is now read-only.

Commit ecd8e8a

Browse files
TrySoundFezVrasta
authored andcommitted
chore: start tracking treeshakability (#179)
This diff adds size snapshot entry with esm bundle which allows to see that some part of the code is not treeshakable. This project is used by material-ui which provides only path imports which looks very scary (a lot of import statement). So this project should be treeshakable to let its users safely consumer from single entry point and do not care about big bundle size.
1 parent 2dbfc2a commit ecd8e8a

File tree

4 files changed

+104
-33
lines changed

4 files changed

+104
-33
lines changed

.size-snapshot.json

Lines changed: 20 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,26 @@
11
{
22
"dist/index.umd.js": {
3-
"bundled": 51215,
4-
"minified": 18354,
5-
"gzipped": 5879
3+
"bundled": 50893,
4+
"minified": 18318,
5+
"gzipped": 5870
66
},
77
"dist/index.umd.min.js": {
8-
"bundled": 28017,
9-
"minified": 10703,
10-
"gzipped": 3585
8+
"bundled": 26552,
9+
"minified": 10685,
10+
"gzipped": 3580
11+
},
12+
"dist/index.esm.js": {
13+
"bundled": 10870,
14+
"minified": 6168,
15+
"gzipped": 1936,
16+
"treeshaked": {
17+
"rollup": {
18+
"code": 5138,
19+
"import_statements": 137
20+
},
21+
"webpack": {
22+
"code": 5875
23+
}
24+
}
1125
}
1226
}

package.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
"scripts": {
1717
"build": "npm run build:clean && npm run build:esm && npm run build:cjs && npm run build:umd && npm run build:flow",
1818
"build:clean": "rimraf dist/ && rimraf lib/",
19-
"build:umd": "rollup -c",
19+
"build:umd": "rollup -c && rimraf dist/index.esm.js",
2020
"build:esm": "cross-env BABEL_ENV=esm babel src --out-dir lib/esm",
2121
"build:cjs": "cross-env BABEL_ENV=cjs babel src --out-dir lib/cjs",
2222
"build:flow": "flow-copy-source --ignore '{__mocks__/*,*.test}.js' src lib/cjs",
@@ -102,13 +102,13 @@
102102
"react-spring": "^4.0.1",
103103
"recompose": "^0.26.0",
104104
"rimraf": "^2.6.2",
105-
"rollup": "^0.58.2",
105+
"rollup": "^0.59.3",
106106
"rollup-plugin-babel": "^3.0.4",
107107
"rollup-plugin-commonjs": "^9.1.3",
108108
"rollup-plugin-node-resolve": "^3.3.0",
109109
"rollup-plugin-replace": "^2.0.0",
110-
"rollup-plugin-size-snapshot": "^0.4.0",
111-
"rollup-plugin-uglify": "^3.0.0",
110+
"rollup-plugin-size-snapshot": "^0.5.1",
111+
"rollup-plugin-uglify": "^4.0.0",
112112
"typescript": "^2.8.1"
113113
}
114114
}

rollup.config.js

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import nodeResolve from 'rollup-plugin-node-resolve';
22
import commonjs from 'rollup-plugin-commonjs';
33
import babel from 'rollup-plugin-babel';
44
import replace from 'rollup-plugin-replace';
5-
import uglify from 'rollup-plugin-uglify';
5+
import { uglify } from 'rollup-plugin-uglify';
66
import { sizeSnapshot } from 'rollup-plugin-size-snapshot';
77

88
const input = './src/index.js';
@@ -54,4 +54,12 @@ export default [
5454
uglify(),
5555
],
5656
},
57+
58+
{
59+
input,
60+
output: { file: 'dist/index.esm.js', format: 'esm' },
61+
external: id =>
62+
!id.startsWith('\0') && !id.startsWith('.') && !id.startsWith('/'),
63+
plugins: [babel(getBabelOptions()), sizeSnapshot()],
64+
},
5765
];

yarn.lock

Lines changed: 71 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,12 @@
88
dependencies:
99
"@babel/highlight" "7.0.0-beta.42"
1010

11+
"@babel/code-frame@^7.0.0-beta.47":
12+
version "7.0.0-beta.48"
13+
resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.0.0-beta.48.tgz#ff1c11060a7c1206e0b81e95286cfc2ca3ac405f"
14+
dependencies:
15+
"@babel/highlight" "7.0.0-beta.48"
16+
1117
1218
version "7.0.0-beta.42"
1319
resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.0.0-beta.42.tgz#777bb50f39c94a7e57f73202d833141f8159af33"
@@ -53,6 +59,14 @@
5359
esutils "^2.0.2"
5460
js-tokens "^3.0.0"
5561

62+
63+
version "7.0.0-beta.48"
64+
resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.0.0-beta.48.tgz#2f225dc995899858f27858d9011fdb75f70bcf96"
65+
dependencies:
66+
chalk "^2.0.0"
67+
esutils "^2.0.2"
68+
js-tokens "^3.0.0"
69+
5670
5771
version "7.0.0-beta.42"
5872
resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.0.0-beta.42.tgz#7186d4e70d44cdec975049ba0a73bdaf5cdee052"
@@ -97,9 +111,9 @@
97111
version "0.5.2"
98112
resolved "https://registry.yarnpkg.com/@emotion/is-prop-valid/-/is-prop-valid-0.5.2.tgz#4f47717c2bcce8759e11997520e6bcb14326f54a"
99113

100-
"@types/[email protected].38":
101-
version "0.0.38"
102-
resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.38.tgz#c1be40aa933723c608820a99a373a16d215a1ca2"
114+
"@types/[email protected].39":
115+
version "0.0.39"
116+
resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.39.tgz#e177e699ee1b8c22d23174caaa7422644389509f"
103117

104118
"@types/node@*":
105119
version "9.6.1"
@@ -139,7 +153,7 @@ acorn@^3.0.4:
139153
version "3.3.0"
140154
resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a"
141155

142-
acorn@^5.0.0, acorn@^5.3.0, acorn@^5.5.0:
156+
acorn@^5.0.0, acorn@^5.3.0, acorn@^5.5.0, acorn@^5.5.3:
143157
version "5.5.3"
144158
resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.5.3.tgz#f473dd47e0277a08e28e9bec5aeeb04751f0b8c9"
145159

@@ -1678,6 +1692,10 @@ commander@~2.13.0:
16781692
version "2.13.0"
16791693
resolved "https://registry.yarnpkg.com/commander/-/commander-2.13.0.tgz#6964bca67685df7c1f1430c584f07d7597885b9c"
16801694

1695+
commander@~2.14.1:
1696+
version "2.14.1"
1697+
resolved "https://registry.yarnpkg.com/commander/-/commander-2.14.1.tgz#2235123e37af8ca3c65df45b026dbd357b01b9aa"
1698+
16811699
commondir@^1.0.1:
16821700
version "1.0.1"
16831701
resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b"
@@ -2653,7 +2671,7 @@ falafel@^2.1.0:
26532671
isarray "0.0.1"
26542672
object-keys "^1.0.6"
26552673

2656-
fast-deep-equal@^1.0.0, fast-deep-equal@^1.1.0:
2674+
fast-deep-equal@^1.0.0:
26572675
version "1.1.0"
26582676
resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz#c053477817c86b51daa853c81e059b733d023614"
26592677

@@ -3796,7 +3814,7 @@ jest-config@^22.4.3:
37963814
jest-validate "^22.4.3"
37973815
pretty-format "^22.4.3"
37983816

3799-
jest-diff@^22.4.0, jest-diff@^22.4.3:
3817+
jest-diff@^22.4.3:
38003818
version "22.4.3"
38013819
resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-22.4.3.tgz#e18cc3feff0aeef159d02310f2686d4065378030"
38023820
dependencies:
@@ -3805,6 +3823,15 @@ jest-diff@^22.4.0, jest-diff@^22.4.3:
38053823
jest-get-type "^22.4.3"
38063824
pretty-format "^22.4.3"
38073825

3826+
jest-diff@^23.0.0:
3827+
version "23.0.0"
3828+
resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-23.0.0.tgz#0a00b2157f518eec338121ccf8879c529269a88e"
3829+
dependencies:
3830+
chalk "^2.0.1"
3831+
diff "^3.2.0"
3832+
jest-get-type "^22.1.0"
3833+
pretty-format "^23.0.0"
3834+
38083835
jest-docblock@^22.4.3:
38093836
version "22.4.3"
38103837
resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-22.4.3.tgz#50886f132b42b280c903c592373bb6e93bb68b19"
@@ -3826,7 +3853,7 @@ jest-environment-node@^22.4.3:
38263853
jest-mock "^22.4.3"
38273854
jest-util "^22.4.3"
38283855

3829-
jest-get-type@^22.4.3:
3856+
jest-get-type@^22.1.0, jest-get-type@^22.4.3:
38303857
version "22.4.3"
38313858
resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-22.4.3.tgz#e3a8504d8479342dd4420236b322869f18900ce4"
38323859

@@ -5354,6 +5381,13 @@ pretty-format@^22.4.3:
53545381
ansi-regex "^3.0.0"
53555382
ansi-styles "^3.2.0"
53565383

5384+
pretty-format@^23.0.0:
5385+
version "23.0.0"
5386+
resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-23.0.0.tgz#b66dc584a0907b1969783c4c20e4d1180b18ac75"
5387+
dependencies:
5388+
ansi-regex "^3.0.0"
5389+
ansi-styles "^3.2.0"
5390+
53575391
pretty-quick@^1.4.1:
53585392
version "1.4.1"
53595393
resolved "https://registry.yarnpkg.com/pretty-quick/-/pretty-quick-1.4.1.tgz#9d41f778d2d4d940ec603d1293a0998e84c4722c"
@@ -5917,25 +5951,26 @@ rollup-plugin-replace@^2.0.0:
59175951
minimatch "^3.0.2"
59185952
rollup-pluginutils "^2.0.1"
59195953

5920-
rollup-plugin-size-snapshot@^0.4.0:
5921-
version "0.4.0"
5922-
resolved "https://registry.yarnpkg.com/rollup-plugin-size-snapshot/-/rollup-plugin-size-snapshot-0.4.0.tgz#59cf69ceaae595d36f5bb60a702a58824a567e03"
5954+
rollup-plugin-size-snapshot@^0.5.1:
5955+
version "0.5.1"
5956+
resolved "https://registry.yarnpkg.com/rollup-plugin-size-snapshot/-/rollup-plugin-size-snapshot-0.5.1.tgz#f7649a4768448f35b5f97d37989e9f2c70165782"
59235957
dependencies:
5958+
acorn "^5.5.3"
59245959
bytes "^3.0.0"
59255960
chalk "^2.3.2"
5926-
fast-deep-equal "^1.1.0"
59275961
gzip-size "^4.1.0"
5928-
jest-diff "^22.4.0"
5962+
jest-diff "^23.0.0"
59295963
memory-fs "^0.4.1"
59305964
rollup-plugin-replace "^2.0.0"
5931-
uglify-es "^3.3.9"
5965+
terser "^3.7.5"
59325966
webpack "^4.5.0"
59335967

5934-
rollup-plugin-uglify@^3.0.0:
5935-
version "3.0.0"
5936-
resolved "https://registry.yarnpkg.com/rollup-plugin-uglify/-/rollup-plugin-uglify-3.0.0.tgz#a34eca24617709c6bf1778e9653baafa06099b86"
5968+
rollup-plugin-uglify@^4.0.0:
5969+
version "4.0.0"
5970+
resolved "https://registry.yarnpkg.com/rollup-plugin-uglify/-/rollup-plugin-uglify-4.0.0.tgz#6eb471738f1ce9ba7d9d4bc43b71cba02417c8fb"
59375971
dependencies:
5938-
uglify-es "^3.3.7"
5972+
"@babel/code-frame" "^7.0.0-beta.47"
5973+
uglify-js "^3.3.25"
59395974

59405975
rollup-pluginutils@^1.5.0:
59415976
version "1.5.2"
@@ -5951,11 +5986,11 @@ rollup-pluginutils@^2.0.1:
59515986
estree-walker "^0.3.0"
59525987
micromatch "^2.3.11"
59535988

5954-
rollup@^0.58.2:
5955-
version "0.58.2"
5956-
resolved "https://registry.yarnpkg.com/rollup/-/rollup-0.58.2.tgz#2feddea8c0c022f3e74b35c48e3c21b3433803ce"
5989+
rollup@^0.59.3:
5990+
version "0.59.3"
5991+
resolved "https://registry.yarnpkg.com/rollup/-/rollup-0.59.3.tgz#15dae74cb1b6a6b39a63c7096c1d6f47d8f2a5bd"
59575992
dependencies:
5958-
"@types/estree" "0.0.38"
5993+
"@types/estree" "0.0.39"
59595994
"@types/node" "*"
59605995

59615996
rst-selector-parser@^2.2.3:
@@ -6555,6 +6590,13 @@ tar@^2.2.1:
65556590
fstream "^1.0.2"
65566591
inherits "2"
65576592

6593+
terser@^3.7.5:
6594+
version "3.7.5"
6595+
resolved "https://registry.yarnpkg.com/terser/-/terser-3.7.5.tgz#b18090210794c79a5774bc1f0ebe80fb877a31bd"
6596+
dependencies:
6597+
commander "~2.14.1"
6598+
source-map "~0.6.1"
6599+
65586600
test-exclude@^4.1.1:
65596601
version "4.2.1"
65606602
resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-4.2.1.tgz#dfa222f03480bca69207ca728b37d74b45f724fa"
@@ -6710,7 +6752,7 @@ ua-parser-js@^0.7.9:
67106752
version "0.7.17"
67116753
resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.17.tgz#e9ec5f9498b9ec910e7ae3ac626a805c4d09ecac"
67126754

6713-
uglify-es@^3.2.1, uglify-es@^3.3.4, uglify-es@^3.3.7, uglify-es@^3.3.9:
6755+
uglify-es@^3.2.1, uglify-es@^3.3.4:
67146756
version "3.3.9"
67156757
resolved "https://registry.yarnpkg.com/uglify-es/-/uglify-es-3.3.9.tgz#0c1c4f0700bed8dbc124cdb304d2592ca203e677"
67166758
dependencies:
@@ -6733,6 +6775,13 @@ uglify-js@^3.3.14:
67336775
commander "~2.15.0"
67346776
source-map "~0.6.1"
67356777

6778+
uglify-js@^3.3.25:
6779+
version "3.3.27"
6780+
resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.3.27.tgz#eb8c3c9429969f86ff5b0a2422ffc78c3cea8cc0"
6781+
dependencies:
6782+
commander "~2.15.0"
6783+
source-map "~0.6.1"
6784+
67366785
uglify-to-browserify@~1.0.0:
67376786
version "1.0.2"
67386787
resolved "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7"

0 commit comments

Comments
 (0)