Skip to content

Commit

Permalink
chore: start tracking treeshakability (#179)
Browse files Browse the repository at this point in the history
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.
  • Loading branch information
TrySound authored and FezVrasta committed May 25, 2018
1 parent 2dbfc2a commit ecd8e8a
Show file tree
Hide file tree
Showing 4 changed files with 104 additions and 33 deletions.
26 changes: 20 additions & 6 deletions .size-snapshot.json
@@ -1,12 +1,26 @@
{
"dist/index.umd.js": {
"bundled": 51215,
"minified": 18354,
"gzipped": 5879
"bundled": 50893,
"minified": 18318,
"gzipped": 5870
},
"dist/index.umd.min.js": {
"bundled": 28017,
"minified": 10703,
"gzipped": 3585
"bundled": 26552,
"minified": 10685,
"gzipped": 3580
},
"dist/index.esm.js": {
"bundled": 10870,
"minified": 6168,
"gzipped": 1936,
"treeshaked": {
"rollup": {
"code": 5138,
"import_statements": 137
},
"webpack": {
"code": 5875
}
}
}
}
8 changes: 4 additions & 4 deletions package.json
Expand Up @@ -16,7 +16,7 @@
"scripts": {
"build": "npm run build:clean && npm run build:esm && npm run build:cjs && npm run build:umd && npm run build:flow",
"build:clean": "rimraf dist/ && rimraf lib/",
"build:umd": "rollup -c",
"build:umd": "rollup -c && rimraf dist/index.esm.js",
"build:esm": "cross-env BABEL_ENV=esm babel src --out-dir lib/esm",
"build:cjs": "cross-env BABEL_ENV=cjs babel src --out-dir lib/cjs",
"build:flow": "flow-copy-source --ignore '{__mocks__/*,*.test}.js' src lib/cjs",
Expand Down Expand Up @@ -102,13 +102,13 @@
"react-spring": "^4.0.1",
"recompose": "^0.26.0",
"rimraf": "^2.6.2",
"rollup": "^0.58.2",
"rollup": "^0.59.3",
"rollup-plugin-babel": "^3.0.4",
"rollup-plugin-commonjs": "^9.1.3",
"rollup-plugin-node-resolve": "^3.3.0",
"rollup-plugin-replace": "^2.0.0",
"rollup-plugin-size-snapshot": "^0.4.0",
"rollup-plugin-uglify": "^3.0.0",
"rollup-plugin-size-snapshot": "^0.5.1",
"rollup-plugin-uglify": "^4.0.0",
"typescript": "^2.8.1"
}
}
10 changes: 9 additions & 1 deletion rollup.config.js
Expand Up @@ -2,7 +2,7 @@ import nodeResolve from 'rollup-plugin-node-resolve';
import commonjs from 'rollup-plugin-commonjs';
import babel from 'rollup-plugin-babel';
import replace from 'rollup-plugin-replace';
import uglify from 'rollup-plugin-uglify';
import { uglify } from 'rollup-plugin-uglify';
import { sizeSnapshot } from 'rollup-plugin-size-snapshot';

const input = './src/index.js';
Expand Down Expand Up @@ -54,4 +54,12 @@ export default [
uglify(),
],
},

{
input,
output: { file: 'dist/index.esm.js', format: 'esm' },
external: id =>
!id.startsWith('\0') && !id.startsWith('.') && !id.startsWith('/'),
plugins: [babel(getBabelOptions()), sizeSnapshot()],
},
];
93 changes: 71 additions & 22 deletions yarn.lock
Expand Up @@ -8,6 +8,12 @@
dependencies:
"@babel/highlight" "7.0.0-beta.42"

"@babel/code-frame@^7.0.0-beta.47":
version "7.0.0-beta.48"
resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.0.0-beta.48.tgz#ff1c11060a7c1206e0b81e95286cfc2ca3ac405f"
dependencies:
"@babel/highlight" "7.0.0-beta.48"

"@babel/generator@7.0.0-beta.42":
version "7.0.0-beta.42"
resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.0.0-beta.42.tgz#777bb50f39c94a7e57f73202d833141f8159af33"
Expand Down Expand Up @@ -53,6 +59,14 @@
esutils "^2.0.2"
js-tokens "^3.0.0"

"@babel/highlight@7.0.0-beta.48":
version "7.0.0-beta.48"
resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.0.0-beta.48.tgz#2f225dc995899858f27858d9011fdb75f70bcf96"
dependencies:
chalk "^2.0.0"
esutils "^2.0.2"
js-tokens "^3.0.0"

"@babel/template@7.0.0-beta.42":
version "7.0.0-beta.42"
resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.0.0-beta.42.tgz#7186d4e70d44cdec975049ba0a73bdaf5cdee052"
Expand Down Expand Up @@ -97,9 +111,9 @@
version "0.5.2"
resolved "https://registry.yarnpkg.com/@emotion/is-prop-valid/-/is-prop-valid-0.5.2.tgz#4f47717c2bcce8759e11997520e6bcb14326f54a"

"@types/estree@0.0.38":
version "0.0.38"
resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.38.tgz#c1be40aa933723c608820a99a373a16d215a1ca2"
"@types/estree@0.0.39":
version "0.0.39"
resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.39.tgz#e177e699ee1b8c22d23174caaa7422644389509f"

"@types/node@*":
version "9.6.1"
Expand Down Expand Up @@ -139,7 +153,7 @@ acorn@^3.0.4:
version "3.3.0"
resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a"

acorn@^5.0.0, acorn@^5.3.0, acorn@^5.5.0:
acorn@^5.0.0, acorn@^5.3.0, acorn@^5.5.0, acorn@^5.5.3:
version "5.5.3"
resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.5.3.tgz#f473dd47e0277a08e28e9bec5aeeb04751f0b8c9"

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

commander@~2.14.1:
version "2.14.1"
resolved "https://registry.yarnpkg.com/commander/-/commander-2.14.1.tgz#2235123e37af8ca3c65df45b026dbd357b01b9aa"

commondir@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b"
Expand Down Expand Up @@ -2653,7 +2671,7 @@ falafel@^2.1.0:
isarray "0.0.1"
object-keys "^1.0.6"

fast-deep-equal@^1.0.0, fast-deep-equal@^1.1.0:
fast-deep-equal@^1.0.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz#c053477817c86b51daa853c81e059b733d023614"

Expand Down Expand Up @@ -3796,7 +3814,7 @@ jest-config@^22.4.3:
jest-validate "^22.4.3"
pretty-format "^22.4.3"

jest-diff@^22.4.0, jest-diff@^22.4.3:
jest-diff@^22.4.3:
version "22.4.3"
resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-22.4.3.tgz#e18cc3feff0aeef159d02310f2686d4065378030"
dependencies:
Expand All @@ -3805,6 +3823,15 @@ jest-diff@^22.4.0, jest-diff@^22.4.3:
jest-get-type "^22.4.3"
pretty-format "^22.4.3"

jest-diff@^23.0.0:
version "23.0.0"
resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-23.0.0.tgz#0a00b2157f518eec338121ccf8879c529269a88e"
dependencies:
chalk "^2.0.1"
diff "^3.2.0"
jest-get-type "^22.1.0"
pretty-format "^23.0.0"

jest-docblock@^22.4.3:
version "22.4.3"
resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-22.4.3.tgz#50886f132b42b280c903c592373bb6e93bb68b19"
Expand All @@ -3826,7 +3853,7 @@ jest-environment-node@^22.4.3:
jest-mock "^22.4.3"
jest-util "^22.4.3"

jest-get-type@^22.4.3:
jest-get-type@^22.1.0, jest-get-type@^22.4.3:
version "22.4.3"
resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-22.4.3.tgz#e3a8504d8479342dd4420236b322869f18900ce4"

Expand Down Expand Up @@ -5354,6 +5381,13 @@ pretty-format@^22.4.3:
ansi-regex "^3.0.0"
ansi-styles "^3.2.0"

pretty-format@^23.0.0:
version "23.0.0"
resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-23.0.0.tgz#b66dc584a0907b1969783c4c20e4d1180b18ac75"
dependencies:
ansi-regex "^3.0.0"
ansi-styles "^3.2.0"

pretty-quick@^1.4.1:
version "1.4.1"
resolved "https://registry.yarnpkg.com/pretty-quick/-/pretty-quick-1.4.1.tgz#9d41f778d2d4d940ec603d1293a0998e84c4722c"
Expand Down Expand Up @@ -5917,25 +5951,26 @@ rollup-plugin-replace@^2.0.0:
minimatch "^3.0.2"
rollup-pluginutils "^2.0.1"

rollup-plugin-size-snapshot@^0.4.0:
version "0.4.0"
resolved "https://registry.yarnpkg.com/rollup-plugin-size-snapshot/-/rollup-plugin-size-snapshot-0.4.0.tgz#59cf69ceaae595d36f5bb60a702a58824a567e03"
rollup-plugin-size-snapshot@^0.5.1:
version "0.5.1"
resolved "https://registry.yarnpkg.com/rollup-plugin-size-snapshot/-/rollup-plugin-size-snapshot-0.5.1.tgz#f7649a4768448f35b5f97d37989e9f2c70165782"
dependencies:
acorn "^5.5.3"
bytes "^3.0.0"
chalk "^2.3.2"
fast-deep-equal "^1.1.0"
gzip-size "^4.1.0"
jest-diff "^22.4.0"
jest-diff "^23.0.0"
memory-fs "^0.4.1"
rollup-plugin-replace "^2.0.0"
uglify-es "^3.3.9"
terser "^3.7.5"
webpack "^4.5.0"

rollup-plugin-uglify@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/rollup-plugin-uglify/-/rollup-plugin-uglify-3.0.0.tgz#a34eca24617709c6bf1778e9653baafa06099b86"
rollup-plugin-uglify@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/rollup-plugin-uglify/-/rollup-plugin-uglify-4.0.0.tgz#6eb471738f1ce9ba7d9d4bc43b71cba02417c8fb"
dependencies:
uglify-es "^3.3.7"
"@babel/code-frame" "^7.0.0-beta.47"
uglify-js "^3.3.25"

rollup-pluginutils@^1.5.0:
version "1.5.2"
Expand All @@ -5951,11 +5986,11 @@ rollup-pluginutils@^2.0.1:
estree-walker "^0.3.0"
micromatch "^2.3.11"

rollup@^0.58.2:
version "0.58.2"
resolved "https://registry.yarnpkg.com/rollup/-/rollup-0.58.2.tgz#2feddea8c0c022f3e74b35c48e3c21b3433803ce"
rollup@^0.59.3:
version "0.59.3"
resolved "https://registry.yarnpkg.com/rollup/-/rollup-0.59.3.tgz#15dae74cb1b6a6b39a63c7096c1d6f47d8f2a5bd"
dependencies:
"@types/estree" "0.0.38"
"@types/estree" "0.0.39"
"@types/node" "*"

rst-selector-parser@^2.2.3:
Expand Down Expand Up @@ -6555,6 +6590,13 @@ tar@^2.2.1:
fstream "^1.0.2"
inherits "2"

terser@^3.7.5:
version "3.7.5"
resolved "https://registry.yarnpkg.com/terser/-/terser-3.7.5.tgz#b18090210794c79a5774bc1f0ebe80fb877a31bd"
dependencies:
commander "~2.14.1"
source-map "~0.6.1"

test-exclude@^4.1.1:
version "4.2.1"
resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-4.2.1.tgz#dfa222f03480bca69207ca728b37d74b45f724fa"
Expand Down Expand Up @@ -6710,7 +6752,7 @@ ua-parser-js@^0.7.9:
version "0.7.17"
resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.17.tgz#e9ec5f9498b9ec910e7ae3ac626a805c4d09ecac"

uglify-es@^3.2.1, uglify-es@^3.3.4, uglify-es@^3.3.7, uglify-es@^3.3.9:
uglify-es@^3.2.1, uglify-es@^3.3.4:
version "3.3.9"
resolved "https://registry.yarnpkg.com/uglify-es/-/uglify-es-3.3.9.tgz#0c1c4f0700bed8dbc124cdb304d2592ca203e677"
dependencies:
Expand All @@ -6733,6 +6775,13 @@ uglify-js@^3.3.14:
commander "~2.15.0"
source-map "~0.6.1"

uglify-js@^3.3.25:
version "3.3.27"
resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.3.27.tgz#eb8c3c9429969f86ff5b0a2422ffc78c3cea8cc0"
dependencies:
commander "~2.15.0"
source-map "~0.6.1"

uglify-to-browserify@~1.0.0:
version "1.0.2"
resolved "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7"
Expand Down

0 comments on commit ecd8e8a

Please sign in to comment.