Skip to content

Commit d1a03f0

Browse files
committed
Add bundle visualizer
1 parent f86206f commit d1a03f0

File tree

5 files changed

+58
-13
lines changed

5 files changed

+58
-13
lines changed

.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ test/storage.json
2626

2727
modules.dot
2828
modules.svg
29+
stats/**/*.html
2930
npm/@effector/**
3031
npm/effector/**
3132
npm/effector-react/**

package.json

+3-1
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
"@babel/core": "^7.3.3",
2525
"@babel/helper-plugin-utils": "^7.0.0",
2626
"@babel/node": "^7.2.2",
27-
"@babel/parser": "^7.3.3",
27+
"@babel/parser": "^7.3.4",
2828
"@babel/plugin-proposal-async-generator-functions": "^7.2.0",
2929
"@babel/plugin-proposal-class-properties": "^7.3.0",
3030
"@babel/plugin-proposal-decorators": "^7.3.0",
@@ -40,6 +40,7 @@
4040
"@babel/preset-flow": "^7.0.0",
4141
"@babel/preset-react": "^7.0.0",
4242
"@babel/register": "^7.0.0",
43+
"@babel/traverse": "^7.3.4",
4344
"@goodmind/flow-js": "^0.94.0-flow.65802c614-build.f6486aa",
4445
"@goodmind/flowgen": "^2.0.0",
4546
"@types/jest": "^24.0.9",
@@ -120,6 +121,7 @@
120121
"rollup-plugin-replace": "^2.1.0",
121122
"rollup-plugin-size-snapshot": "^0.8.0",
122123
"rollup-plugin-terser": "^4.0.4",
124+
"rollup-plugin-visualizer": "^1.1.0",
123125
"rxjs": "^6.4.0",
124126
"serve": "^10.1.2",
125127
"setimmediate": "^1.0.5",

tools/builder/rollup.config.js

+1
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ export default {
2626
'rollup-plugin-commonjs',
2727
'rollup-plugin-replace',
2828
'rollup-plugin-size-snapshot',
29+
'rollup-plugin-visualizer',
2930
'readable-stream',
3031
'cross-fetch',
3132
'zlib',

tools/builder/rollup.js

+25-11
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@ import commonjs from 'rollup-plugin-commonjs'
1919
import replace from 'rollup-plugin-replace'
2020
//$off
2121
import {sizeSnapshot} from 'rollup-plugin-size-snapshot'
22+
//$off
23+
import analyze from 'rollup-plugin-visualizer'
2224

2325
import graphPlugin from './moduleGraphGenerator'
2426
import {dir, getSourcemapPathTransform} from './utils'
@@ -130,7 +132,7 @@ const minifyConfig = ({beautify}: {beautify: boolean}) => ({
130132
warnings: true,
131133
})
132134

133-
const getPlugins = () => ({
135+
const getPlugins = (name: string) => ({
134136
babel: babel({
135137
runtimeHelpers: false,
136138
exclude: /(\.re|node_modules.*)/,
@@ -141,6 +143,10 @@ const getPlugins = () => ({
141143
commonjs: commonjs({}),
142144
resolve: resolve({}),
143145
sizeSnapshot: sizeSnapshot(),
146+
analyzer: analyze({
147+
filename: `stats/${name}.html`,
148+
sourcemap: true
149+
}),
144150
terser: terser(
145151
minifyConfig({
146152
beautify: !!process.env.PRETTIFY,
@@ -152,7 +158,7 @@ const getPlugins = () => ({
152158
})
153159

154160
export async function rollupBabel(name: string, plugin: *) {
155-
const plugins = getPlugins()
161+
const plugins = getPlugins(name)
156162
const terserConfig = minifyConfig({
157163
beautify: true,
158164
})
@@ -185,7 +191,7 @@ export async function rollupEffector() {
185191
await Promise.all([cjsAndEs(), umd()])
186192

187193
async function cjsAndEs() {
188-
const plugins = getPlugins()
194+
const plugins = getPlugins(name)
189195
const build = await rollup({
190196
input: (dir(`packages/${name}/index.js`): string),
191197
external: [
@@ -203,6 +209,7 @@ export async function rollupEffector() {
203209
plugins.graph,
204210
plugins.sizeSnapshot,
205211
plugins.terser,
212+
plugins.analyzer,
206213
],
207214
})
208215

@@ -224,7 +231,7 @@ export async function rollupEffector() {
224231
])
225232
}
226233
async function umd() {
227-
const plugins = getPlugins()
234+
const plugins = getPlugins(`${name}.umd`)
228235
//$off
229236
const build = await rollup({
230237
input: String(dir(`packages/${name}/index.js`)),
@@ -233,8 +240,9 @@ export async function rollupEffector() {
233240
plugins.babel,
234241
plugins.replace,
235242
plugins.commonjs,
236-
// plugins.terser,
237243
plugins.sizeSnapshot,
244+
plugins.terser,
245+
plugins.analyzer,
238246
],
239247
external: ['react', 'effector'],
240248
})
@@ -254,7 +262,7 @@ export async function rollupEffectorForms() {
254262
await Promise.all([cjsAndEs(), umd()])
255263

256264
async function cjsAndEs() {
257-
const plugins = getPlugins()
265+
const plugins = getPlugins(name)
258266
const build = await rollup({
259267
input: (dir(`packages/${name}/index.js`): string),
260268
external: [
@@ -271,6 +279,7 @@ export async function rollupEffectorForms() {
271279
plugins.babel,
272280
plugins.sizeSnapshot,
273281
plugins.terser,
282+
plugins.analyzer,
274283
],
275284
})
276285

@@ -292,7 +301,7 @@ export async function rollupEffectorForms() {
292301
])
293302
}
294303
async function umd() {
295-
const plugins = getPlugins()
304+
const plugins = getPlugins(`${name}.umd`)
296305
//$off
297306
const build = await rollup({
298307
input: String(dir(`packages/${name}/index.js`)),
@@ -303,6 +312,7 @@ export async function rollupEffectorForms() {
303312
plugins.commonjs,
304313
plugins.sizeSnapshot,
305314
plugins.terser,
315+
plugins.analyzer,
306316
],
307317
external: ['react', 'effector'],
308318
})
@@ -322,7 +332,7 @@ export async function rollupEffectorReact() {
322332
await Promise.all([cjsAndEs(), umd()])
323333

324334
async function cjsAndEs() {
325-
const plugins = getPlugins()
335+
const plugins = getPlugins(name)
326336
const build = await rollup({
327337
input: (dir(`packages/${name}/index.js`): string),
328338
external: [
@@ -339,6 +349,7 @@ export async function rollupEffectorReact() {
339349
plugins.babel,
340350
plugins.sizeSnapshot,
341351
plugins.terser,
352+
plugins.analyzer,
342353
],
343354
})
344355

@@ -360,7 +371,7 @@ export async function rollupEffectorReact() {
360371
])
361372
}
362373
async function umd() {
363-
const plugins = getPlugins()
374+
const plugins = getPlugins(`${name}.umd`)
364375
//$off
365376
const build = await rollup({
366377
input: String(dir(`packages/${name}/index.js`)),
@@ -371,6 +382,7 @@ export async function rollupEffectorReact() {
371382
plugins.commonjs,
372383
plugins.sizeSnapshot,
373384
plugins.terser,
385+
plugins.analyzer,
374386
],
375387
external: ['react', 'effector'],
376388
})
@@ -408,7 +420,7 @@ export async function rollupEffectorVue() {
408420
await Promise.all([cjsAndEs(), umd()])
409421

410422
async function cjsAndEs() {
411-
const plugins = getPlugins()
423+
const plugins = getPlugins(name)
412424
const build = await rollup({
413425
input: (dir(`packages/${name}/index.js`): string),
414426
external: [
@@ -425,6 +437,7 @@ export async function rollupEffectorVue() {
425437
plugins.babel,
426438
plugins.sizeSnapshot,
427439
plugins.terser,
440+
plugins.analyzer,
428441
],
429442
})
430443
await Promise.all([
@@ -445,7 +458,7 @@ export async function rollupEffectorVue() {
445458
])
446459
}
447460
async function umd() {
448-
const plugins = getPlugins()
461+
const plugins = getPlugins(`${name}.umd`)
449462
//$off
450463
const build = await rollup({
451464
input: String(dir(`packages/${name}/index.js`)),
@@ -456,6 +469,7 @@ export async function rollupEffectorVue() {
456469
plugins.commonjs,
457470
plugins.sizeSnapshot,
458471
plugins.terser,
472+
plugins.analyzer,
459473
],
460474
external: ['vue', 'effector'],
461475
})

yarn.lock

+28-1
Original file line numberDiff line numberDiff line change
@@ -261,7 +261,7 @@
261261
lodash "^4.17.10"
262262
v8flags "^3.1.1"
263263

264-
"@babel/parser@^7.0.0", "@babel/parser@^7.1.6", "@babel/parser@^7.2.2", "@babel/parser@^7.3.3", "@babel/parser@^7.3.4":
264+
"@babel/parser@^7.0.0", "@babel/parser@^7.1.6", "@babel/parser@^7.2.2", "@babel/parser@^7.3.4":
265265
version "7.3.4"
266266
resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.3.4.tgz#a43357e4bbf4b92a437fb9e465c192848287f27c"
267267
integrity sha512-tXZCqWtlOOP4wgCp6RjRvLmfuhnqTLy9VHwRochJBCP2nDm27JnnuFEnXFASVyQNHk36jD1tAammsCEEqgscIQ==
@@ -7682,6 +7682,13 @@ opn@^5.1.0:
76827682
dependencies:
76837683
is-wsl "^1.1.0"
76847684

7685+
opn@^5.4.0:
7686+
version "5.5.0"
7687+
resolved "https://registry.yarnpkg.com/opn/-/opn-5.5.0.tgz#fc7164fab56d235904c51c3b27da6758ca3b9bfc"
7688+
integrity sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA==
7689+
dependencies:
7690+
is-wsl "^1.1.0"
7691+
76857692
optimist@^0.6.1:
76867693
version "0.6.1"
76877694
resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686"
@@ -9703,6 +9710,16 @@ rollup-plugin-terser@^4.0.4:
97039710
serialize-javascript "^1.6.1"
97049711
terser "^3.14.1"
97059712

9713+
rollup-plugin-visualizer@^1.1.0:
9714+
version "1.1.0"
9715+
resolved "https://registry.yarnpkg.com/rollup-plugin-visualizer/-/rollup-plugin-visualizer-1.1.0.tgz#56b7c340a66acfae4ae6476fddca5754907655c6"
9716+
integrity sha512-K+TbgK3ds5gpIH5dgM39qD+txbWL/gRbws4Kq0b/Bg2IZpMlB7YwAgo97KmBvWN5tCQdFhsBVtzSQ0NzL9uKZg==
9717+
dependencies:
9718+
mkdirp "^0.5.1"
9719+
opn "^5.4.0"
9720+
source-map "^0.7.3"
9721+
typeface-oswald "0.0.54"
9722+
97069723
rollup-pluginutils@^2.0.1, rollup-pluginutils@^2.3.0, rollup-pluginutils@^2.3.1, rollup-pluginutils@^2.3.3:
97079724
version "2.4.1"
97089725
resolved "https://registry.yarnpkg.com/rollup-pluginutils/-/rollup-pluginutils-2.4.1.tgz#de43ab54965bbf47843599a7f3adceb723de38db"
@@ -10189,6 +10206,11 @@ source-map@^0.5.0, source-map@^0.5.3, source-map@^0.5.6:
1018910206
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc"
1019010207
integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=
1019110208

10209+
source-map@^0.7.3:
10210+
version "0.7.3"
10211+
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383"
10212+
integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==
10213+
1019210214
sourcemap-codec@^1.4.4:
1019310215
version "1.4.4"
1019410216
resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.4.tgz#c63ea927c029dd6bd9a2b7fa03b3fec02ad56e9f"
@@ -10883,6 +10905,11 @@ typedarray@^0.0.6:
1088310905
resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
1088410906
integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=
1088510907

10908+
10909+
version "0.0.54"
10910+
resolved "https://registry.yarnpkg.com/typeface-oswald/-/typeface-oswald-0.0.54.tgz#1e253011622cdd50f580c04e7d625e7f449763d7"
10911+
integrity sha512-U1WMNp4qfy4/3khIfHMVAIKnNu941MXUfs3+H9R8PFgnoz42Hh9pboSFztWr86zut0eXC8byalmVhfkiKON/8Q==
10912+
1088610913
typescript-compiler@^1.4.1-2:
1088710914
version "1.4.1-2"
1088810915
resolved "https://registry.yarnpkg.com/typescript-compiler/-/typescript-compiler-1.4.1-2.tgz#ba4f7db22d91534a1929d90009dce161eb72fd3f"

0 commit comments

Comments
 (0)