bundle-stats 4.2.3-beta.0 → 4.2.3-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +52 -35
- package/__fixtures__/{webpack-stats-baseline.json → webpack-stats.baseline.json} +17 -17
- package/__fixtures__/{webpack-stats-current.json → webpack-stats.current.json} +41 -41
- package/lib/cli.js +11 -5
- package/lib/cli.js.map +1 -1
- package/lib/run.js +22 -23
- package/lib/run.js.map +1 -1
- package/package.json +20 -18
- package/CHANGELOG.md +0 -260
- package/dist/bundle-stats.html +0 -2
- package/dist/bundle-stats.json +0 -39312
package/README.md
CHANGED
|
@@ -1,31 +1,33 @@
|
|
|
1
1
|
<p align="center">
|
|
2
|
-
<a href="https://relative-ci.com/
|
|
2
|
+
<a href="https://relative-ci.com/bundle-analyzer/bundle-stats/demo/bundle-analysis-comparison" target="_blank"><img alt="BundleStats screenshot" src="https://raw.githubusercontent.com/relative-ci/bundle-stats/master/bundle-stats.gif"/></a>
|
|
3
3
|
</p>
|
|
4
4
|
<p align="center">
|
|
5
|
-
|
|
6
|
-
<a href="https://relative-ci.com/
|
|
7
|
-
<a href="https://relative-ci.com/
|
|
5
|
+
Demos:
|
|
6
|
+
<a href="https://relative-ci.com/bundle-analyzer/bundle-stats/demo/bundle-analysis-comparison" target="_blank">Bundle analysis comparison</a> ·
|
|
7
|
+
<a href="https://relative-ci.com/bundle-analyzer/bundle-stats/demo/bundle-analysis" target="_blank">Bundle analysis</a>
|
|
8
8
|
</p>
|
|
9
9
|
<h1 align="center">BundleStats</h1>
|
|
10
10
|
<p align="center">
|
|
11
|
-
Analyze
|
|
11
|
+
Analyze bundle stats(bundle size, assets, modules, packages) and compare the results between different builds. Support for webpack, rspack, vite, rollup and rolldown.
|
|
12
12
|
</p>
|
|
13
13
|
<p align="center">
|
|
14
14
|
<a href="https://www.npmjs.com/package/bundle-stats"><img src="https://img.shields.io/npm/v/bundle-stats.svg" /></a>
|
|
15
15
|
<a href="https://www.npmjs.com/package/bundle-stats"><img src="https://img.shields.io/npm/dm/bundle-stats.svg" /></a>
|
|
16
16
|
<img src="https://img.shields.io/node/v/bundle-stats.svg" alt="Node version" />
|
|
17
|
-
<a href="https://github.com/relative-ci/bundle-stats/actions/workflows/
|
|
17
|
+
<a href="https://github.com/relative-ci/bundle-stats/actions/workflows/ci.yml"><img alt="GitHub action" src="https://github.com/relative-ci/bundle-stats/actions/workflows/ci.yml/badge.svg" /></a>
|
|
18
|
+
<a href="https://socket.dev/npm/package/bundle-stats/overview"><img alt="Socket" src="https://socket.dev/api/badge/npm/package/bundle-stats" /></a>
|
|
18
19
|
<a href="https://github.com/relative-ci/bundle-stats/actions/workflows/codeql.yml"><img alt="CodeQL" src="https://github.com/relative-ci/bundle-stats/actions/workflows/codeql.yml/badge.svg"/></a>
|
|
19
20
|
</p>
|
|
20
21
|
<p align="center">
|
|
21
22
|
<a href="https://app.relative-ci.com/projects/V1bXuieJbYttHCS75L8G"><img src="https://badges.relative-ci.com/badges/V1bXuieJbYttHCS75L8G?branch=master" alt="RelativeCI"></a>
|
|
22
23
|
</p>
|
|
23
24
|
<p align="center">
|
|
24
|
-
- <a href="https://relative-ci.com/
|
|
25
|
-
- <a href="https://relative-ci.com/
|
|
26
|
-
- <a href="https://relative-ci.com/
|
|
27
|
-
- <a href="https://relative-ci.com/
|
|
28
|
-
- <a href="https://relative-ci.com/
|
|
25
|
+
- <a href="https://relative-ci.com/bundle-analyzer/bundle-stats/demo/bundle-analysis-comparison#/"><strong>Bundle size</strong> and <strong>totals by file</strong> type(css, js, img, etc)</a><br />
|
|
26
|
+
- <a href="https://relative-ci.com/bundle-analyzer/bundle-stats/demo/bundle-analysis-comparison#/">Insights: <strong>duplicate packages</strong>, <strong>new packages</strong></a><br />
|
|
27
|
+
- <a href="https://relative-ci.com/bundle-analyzer/bundle-stats/demo/bundle-analysis-comparison#/"><strong>Initial JS/CSS</strong>, <strong>Cache invalidation</strong>, and other bundle metrics</a><br />
|
|
28
|
+
- <a href="https://relative-ci.com/bundle-analyzer/bundle-stats/demo/bundle-analysis-comparison#/assets"><strong>Assets</strong> report (entrypoint, initial, types, changed, delta)</a><br />
|
|
29
|
+
- <a href="https://relative-ci.com/bundle-analyzer/bundle-stats/demo/bundle-analysis-comparison#/modules"><strong>Modules</strong> report (changed, delta, chunks, duplicate count and percentage)</a><br />
|
|
30
|
+
- <a href="https://relative-ci.com/bundle-analyzer/bundle-stats/demo/bundle-analysis-comparison#/packages"><strong>Packages</strong> report (count, duplicate, changed, delta)</a><br />
|
|
29
31
|
:star: <strong>Side by side comparison</strong> for multiple builds
|
|
30
32
|
</p>
|
|
31
33
|
|
|
@@ -62,28 +64,35 @@ or
|
|
|
62
64
|
yarn add --dev bundle-stats
|
|
63
65
|
```
|
|
64
66
|
|
|
65
|
-
##
|
|
67
|
+
## Output webpack stats
|
|
66
68
|
|
|
67
|
-
The CLI is consuming the Webpack stats
|
|
69
|
+
The CLI is consuming the Webpack stats JSON file. The following [webpack stats options](https://webpack.js.org/configuration/stats) are needed:
|
|
68
70
|
|
|
69
71
|
```js
|
|
70
72
|
{
|
|
71
73
|
stats: {
|
|
74
|
+
// required
|
|
72
75
|
assets: true,
|
|
73
76
|
chunks: true,
|
|
74
77
|
modules: true,
|
|
78
|
+
// optional
|
|
75
79
|
builtAt: true,
|
|
76
80
|
hash: true
|
|
77
81
|
}
|
|
78
82
|
}
|
|
79
83
|
```
|
|
80
84
|
|
|
81
|
-
|
|
85
|
+
[How to configure webpack for better debugging and monitoring](https://relative-ci.com/documentation/guides/webpack-config)
|
|
86
|
+
|
|
87
|
+
You can output the webpack stats JSON file using [webpack-cli](https://www.npmjs.com/package/webpack-cli) `--json` option:
|
|
82
88
|
|
|
83
89
|
```shell
|
|
84
90
|
npx webpack --mode production --json artifacts/webpack-stats.json
|
|
85
91
|
```
|
|
86
92
|
|
|
93
|
+
- [How to output webpack stats JSON file using webpack-cli](https://relative-ci.com/documentation/guides/webpack-stats/webpack-cli)
|
|
94
|
+
- [How to output webpack stats JSON file using webpack-stats-plugin](https://relative-ci.com/documentation/guides/webpack-stats/webpack-stats-plugin)
|
|
95
|
+
|
|
87
96
|
## Usage
|
|
88
97
|
|
|
89
98
|
```shell
|
|
@@ -91,17 +100,19 @@ $ bundle-stats -h
|
|
|
91
100
|
Usage: bundle-stats OPTIONS [WEBPACK_STATS_FILE]...
|
|
92
101
|
|
|
93
102
|
Options:
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
-
|
|
103
|
+
--demo Generate demo reports [boolean] [default: false]
|
|
104
|
+
--compare Use local saved stats for comparison
|
|
105
|
+
[boolean] [default: true]
|
|
106
|
+
--baseline Save current stats as baseline
|
|
107
|
+
[boolean] [default: false]
|
|
108
|
+
--baseline-filepath Baseline filepath, default:
|
|
109
|
+
node_modules/.cache/bundle-stats/baseline.json
|
|
110
|
+
[string]
|
|
111
|
+
--html Save HTML report [boolean] [default: true]
|
|
112
|
+
--json Save JSON data [boolean] [default: false]
|
|
113
|
+
-d, --out-dir Output directory [string]
|
|
114
|
+
-h, --help Show help [boolean]
|
|
115
|
+
-v, --version Show version number [boolean]
|
|
105
116
|
```
|
|
106
117
|
|
|
107
118
|
```shell
|
|
@@ -195,17 +206,17 @@ The option can be disabled using `--no-compare` option.
|
|
|
195
206
|
|
|
196
207
|
### :cyclone: [relative-ci.com](https://relative-ci.com?utm_medium=bundle-stats-cli)
|
|
197
208
|
|
|
198
|
-
####
|
|
209
|
+
#### Optimize your web app's performance with automated bundle stats analysis and monitoring.
|
|
199
210
|
|
|
200
|
-
|
|
211
|
+
- :crystal_ball: In-depth bundle stats analysis for every build
|
|
212
|
+
- :chart_with_upwards_trend: Monitor bundle stats changes and identify opportunities for optimizations
|
|
213
|
+
- :bell: [Rule based automated review flow](https://relative-ci.com/documentation/setup/configure/integrations/github-commit-status-review?utm_medium=bundle-stats-cli), or get notified via [GitHub Pull Request comments](https://relative-ci.com/documentation/setup/configure/integrations/github-pull-request-comment?utm_medium=bundle-stats-cli), [GitHub check reports](https://relative-ci.com/documentation/setup/configure/integrations/github-check-report?utm_medium=bundle-stats-cli) and [Slack messages](https://relative-ci.com/documentation/setup/configure/integrations/slack-notification?utm_medium=bundle-stats-cli)
|
|
214
|
+
- :wrench: Support for **webpack** and beta support for **Vite**/**Rollup**
|
|
215
|
+
- :hammer: Support for all major CI services(CircleCI, GitHub Actions, Gitlab CI, Jenkins, Travis CI)
|
|
216
|
+
- :nut_and_bolt: Support for **npm**, **yarn** and **pnpm**; support for monorepos
|
|
217
|
+
- :two_hearts: **Always free** for **Open Source**
|
|
201
218
|
|
|
202
|
-
|
|
203
|
-
- :chart_with_upwards_trend: Monitor webpack bundle stats changes and identify tendencies over extended periods
|
|
204
|
-
- :bell: Get notified via GitHub Checks, GitHub Pull Request comments, and Slack notifications
|
|
205
|
-
- :hammer: Support for all major CI services (CircleCI, GitHub Actions, Gitlab CI, Jenkins, Travis CI)
|
|
206
|
-
- :two_hearts: Always free for Open Source
|
|
207
|
-
|
|
208
|
-
[Try for free](https://relative-ci.com?utm_medium=bundle-stats-cli)
|
|
219
|
+
[:rocket: Get started](https://relative-ci.com?utm_medium=bundle-stats-cli)
|
|
209
220
|
|
|
210
221
|
### :first_quarter_moon: [relative-ci/compare](https://compare.relative-ci.com)
|
|
211
222
|
|
|
@@ -224,7 +235,7 @@ Github Action that generates [bundle-stats](https://github.com/relative-ci/bundl
|
|
|
224
235
|
|
|
225
236
|
[](https://www.npmjs.com/package/bundle-stats-webpack-plugin) [](https://www.npmjs.com/package/bundle-stats-webpack-plugin)
|
|
226
237
|
|
|
227
|
-
Webpack plugin to generate bundle stats report.
|
|
238
|
+
Webpack plugin to generate bundle stats report for webpack/rspack.
|
|
228
239
|
|
|
229
240
|
### [`gatsby-plugin-bundle-stats`](https://github.com/relative-ci/bundle-stats/tree/master/packages/gatsby-plugin)
|
|
230
241
|
|
|
@@ -237,3 +248,9 @@ Webpack plugin to generate bundle stats report.
|
|
|
237
248
|
[](https://www.npmjs.com/package/next-plugin-bundle-stats) [](https://www.npmjs.com/package/next-plugin-bundle-stats)
|
|
238
249
|
|
|
239
250
|
[Next.js](https://nextjs.org) plugin for [bundle-stats](https://github.com/relative-ci/bundle-stats/tree/master/packages/webpack-plugin).
|
|
251
|
+
|
|
252
|
+
### [`rollup-plugin-bundle-stats`](https://github.com/relative-ci/bundle-stats/tree/master/packages/rollup-plugin)
|
|
253
|
+
|
|
254
|
+
[](https://www.npmjs.com/package/rollup-plugin-bundle-stats) [](https://www.npmjs.com/package/rollup-plugin-bundle-stats)
|
|
255
|
+
|
|
256
|
+
Rollup plugin to generate bundle stats report for vite/rolldown/rollup.
|
|
@@ -42,11 +42,11 @@
|
|
|
42
42
|
"size": 1356
|
|
43
43
|
},
|
|
44
44
|
{
|
|
45
|
-
"name": "main.75d52d9.js",
|
|
45
|
+
"name": "assets/js/main.75d52d9.js",
|
|
46
46
|
"size": 215291
|
|
47
47
|
},
|
|
48
48
|
{
|
|
49
|
-
"name": "main.e7aed2d.css",
|
|
49
|
+
"name": "assets/css/main.e7aed2d.css",
|
|
50
50
|
"size": 17402
|
|
51
51
|
},
|
|
52
52
|
{
|
|
@@ -54,7 +54,7 @@
|
|
|
54
54
|
"size": 5934
|
|
55
55
|
},
|
|
56
56
|
{
|
|
57
|
-
"name": "relative-ci-logo.svg",
|
|
57
|
+
"name": "assets/images/relative-ci-logo.svg",
|
|
58
58
|
"size": 2092
|
|
59
59
|
},
|
|
60
60
|
{
|
|
@@ -66,11 +66,11 @@
|
|
|
66
66
|
"size": 380
|
|
67
67
|
},
|
|
68
68
|
{
|
|
69
|
-
"name": "vendors.176a5f6.js",
|
|
69
|
+
"name": "assets/js/vendors.176a5f6.js",
|
|
70
70
|
"size": 1823712
|
|
71
71
|
},
|
|
72
72
|
{
|
|
73
|
-
"name": "vendors.8b6bb4f.css",
|
|
73
|
+
"name": "assets/css/vendors.8b6bb4f.css",
|
|
74
74
|
"size": 48381
|
|
75
75
|
}
|
|
76
76
|
],
|
|
@@ -80,10 +80,10 @@
|
|
|
80
80
|
"entry": true,
|
|
81
81
|
"initial": true,
|
|
82
82
|
"files": [
|
|
83
|
-
"main.e7aed2d.css",
|
|
84
|
-
"main.75d52d9.js",
|
|
85
|
-
"main.e7aed2d.css.map",
|
|
86
|
-
"main.75d52d9.js.map"
|
|
83
|
+
"assets/css/main.e7aed2d.css",
|
|
84
|
+
"assets/js/main.75d52d9.js",
|
|
85
|
+
"assets/css/main.e7aed2d.css.map",
|
|
86
|
+
"assets/js/main.75d52d9.js.map"
|
|
87
87
|
],
|
|
88
88
|
"names": [
|
|
89
89
|
"main"
|
|
@@ -94,10 +94,10 @@
|
|
|
94
94
|
"entry": true,
|
|
95
95
|
"initial": true,
|
|
96
96
|
"files": [
|
|
97
|
-
"vendors.8b6bb4f.css",
|
|
98
|
-
"vendors.176a5f6.js",
|
|
99
|
-
"vendors.8b6bb4f.css.map",
|
|
100
|
-
"vendors.176a5f6.js.map"
|
|
97
|
+
"assets/css/vendors.8b6bb4f.css",
|
|
98
|
+
"assets/js/vendors.176a5f6.js",
|
|
99
|
+
"assets/css/vendors.8b6bb4f.css.map",
|
|
100
|
+
"assets/js/vendors.176a5f6.js.map"
|
|
101
101
|
],
|
|
102
102
|
"names": [
|
|
103
103
|
"vendors"
|
|
@@ -4345,7 +4345,7 @@
|
|
|
4345
4345
|
]
|
|
4346
4346
|
},
|
|
4347
4347
|
{
|
|
4348
|
-
"name": "./src/
|
|
4348
|
+
"name": "./src/common/data/open-source-projects.js",
|
|
4349
4349
|
"size": 710,
|
|
4350
4350
|
"chunks": [
|
|
4351
4351
|
0
|
|
@@ -10664,7 +10664,7 @@
|
|
|
10664
10664
|
]
|
|
10665
10665
|
},
|
|
10666
10666
|
{
|
|
10667
|
-
"name": "css ./node_modules/css-loader/dist/cjs.js??ref--6-0!./node_modules/postcss-loader/dist/cjs.js??ref--6-1!./src/
|
|
10667
|
+
"name": "css ./node_modules/css-loader/dist/cjs.js??ref--6-0!./node_modules/postcss-loader/dist/cjs.js??ref--6-1!./src/common/src/components/layout/footer/footer.module.css",
|
|
10668
10668
|
"size": 1115,
|
|
10669
10669
|
"chunks": [
|
|
10670
10670
|
0
|
|
@@ -11028,7 +11028,7 @@
|
|
|
11028
11028
|
]
|
|
11029
11029
|
},
|
|
11030
11030
|
{
|
|
11031
|
-
"name": "css ./node_modules/css-loader/dist/cjs.js??ref--6-0!./node_modules/postcss-loader/dist/cjs.js??ref--6-1!./src/
|
|
11031
|
+
"name": "css ./node_modules/css-loader/dist/cjs.js??ref--6-0!./node_modules/postcss-loader/dist/cjs.js??ref--6-1!./src/common/src/components/profile/profile.module.css",
|
|
11032
11032
|
"size": 1381,
|
|
11033
11033
|
"chunks": [
|
|
11034
11034
|
0
|
|
@@ -11077,7 +11077,7 @@
|
|
|
11077
11077
|
]
|
|
11078
11078
|
},
|
|
11079
11079
|
{
|
|
11080
|
-
"name": "css ./node_modules/css-loader/dist/cjs.js??ref--6-0!./node_modules/postcss-loader/dist/cjs.js??ref--6-1!./src/
|
|
11080
|
+
"name": "css ./node_modules/css-loader/dist/cjs.js??ref--6-0!./node_modules/postcss-loader/dist/cjs.js??ref--6-1!./src/common/src/components/ui-stack.module.css",
|
|
11081
11081
|
"size": 191,
|
|
11082
11082
|
"chunks": [
|
|
11083
11083
|
0
|
|
@@ -42,27 +42,27 @@
|
|
|
42
42
|
"size": 1356
|
|
43
43
|
},
|
|
44
44
|
{
|
|
45
|
-
"name": "login.3fc183e.css",
|
|
45
|
+
"name": "assets/chunks/login.3fc183e.css",
|
|
46
46
|
"size": 154
|
|
47
47
|
},
|
|
48
48
|
{
|
|
49
|
-
"name": "login.49220d2.js",
|
|
49
|
+
"name": "assets/chunks/login.49220d2.js",
|
|
50
50
|
"size": 762
|
|
51
51
|
},
|
|
52
52
|
{
|
|
53
|
-
"name": "login~signup.00bcc36.css",
|
|
53
|
+
"name": "assets/chunks/login~signup.00bcc36.css",
|
|
54
54
|
"size": 242
|
|
55
55
|
},
|
|
56
56
|
{
|
|
57
|
-
"name": "login~signup.7fe771f.js",
|
|
57
|
+
"name": "assets/chunks/login~signup.7fe771f.js",
|
|
58
58
|
"size": 275986
|
|
59
59
|
},
|
|
60
60
|
{
|
|
61
|
-
"name": "main.12dd8b1.css",
|
|
61
|
+
"name": "assets/css/main.12dd8b1.css",
|
|
62
62
|
"size": 10193
|
|
63
63
|
},
|
|
64
64
|
{
|
|
65
|
-
"name": "main.a0929a4.js",
|
|
65
|
+
"name": "assets/js/main.a0929a4.js",
|
|
66
66
|
"size": 139281
|
|
67
67
|
},
|
|
68
68
|
{
|
|
@@ -70,15 +70,15 @@
|
|
|
70
70
|
"size": 5934
|
|
71
71
|
},
|
|
72
72
|
{
|
|
73
|
-
"name": "project.6f85cd9.css",
|
|
73
|
+
"name": "assets/chunks/project.6f85cd9.css",
|
|
74
74
|
"size": 6603
|
|
75
75
|
},
|
|
76
76
|
{
|
|
77
|
-
"name": "project.deaf2dc.js",
|
|
77
|
+
"name": "assets/chunks/project.deaf2dc.js",
|
|
78
78
|
"size": 438041
|
|
79
79
|
},
|
|
80
80
|
{
|
|
81
|
-
"name": "relative-ci-logo.svg",
|
|
81
|
+
"name": "assets/images/relative-ci-logo.svg",
|
|
82
82
|
"size": 2092
|
|
83
83
|
},
|
|
84
84
|
{
|
|
@@ -86,11 +86,11 @@
|
|
|
86
86
|
"size": 29
|
|
87
87
|
},
|
|
88
88
|
{
|
|
89
|
-
"name": "signup.83e1afe.js",
|
|
89
|
+
"name": "assets/chunks/signup.83e1afe.js",
|
|
90
90
|
"size": 1009
|
|
91
91
|
},
|
|
92
92
|
{
|
|
93
|
-
"name": "signup.9ab12e1.css",
|
|
93
|
+
"name": "assets/chunks/signup.9ab12e1.css",
|
|
94
94
|
"size": 226
|
|
95
95
|
},
|
|
96
96
|
{
|
|
@@ -98,11 +98,11 @@
|
|
|
98
98
|
"size": 380
|
|
99
99
|
},
|
|
100
100
|
{
|
|
101
|
-
"name": "vendors.278dc2f.js",
|
|
101
|
+
"name": "assets/js/vendors.278dc2f.js",
|
|
102
102
|
"size": 1126364
|
|
103
103
|
},
|
|
104
104
|
{
|
|
105
|
-
"name": "vendors.5024abb.css",
|
|
105
|
+
"name": "assets/css/vendors.5024abb.css",
|
|
106
106
|
"size": 38673
|
|
107
107
|
}
|
|
108
108
|
],
|
|
@@ -112,10 +112,10 @@
|
|
|
112
112
|
"entry": false,
|
|
113
113
|
"initial": false,
|
|
114
114
|
"files": [
|
|
115
|
-
"login~signup.00bcc36.css",
|
|
116
|
-
"login~signup.7fe771f.js",
|
|
117
|
-
"login~signup.00bcc36.css.map",
|
|
118
|
-
"login~signup.7fe771f.js.map"
|
|
115
|
+
"assets/chunks/login~signup.00bcc36.css",
|
|
116
|
+
"assets/chunks/login~signup.7fe771f.js",
|
|
117
|
+
"assets/chunks/login~signup.00bcc36.css.map",
|
|
118
|
+
"assets/chunks/login~signup.7fe771f.js.map"
|
|
119
119
|
],
|
|
120
120
|
"names": [
|
|
121
121
|
"login~signup"
|
|
@@ -126,10 +126,10 @@
|
|
|
126
126
|
"entry": false,
|
|
127
127
|
"initial": false,
|
|
128
128
|
"files": [
|
|
129
|
-
"login.3fc183e.css",
|
|
130
|
-
"login.49220d2.js",
|
|
131
|
-
"login.3fc183e.css.map",
|
|
132
|
-
"login.49220d2.js.map"
|
|
129
|
+
"assets/chunks/login.3fc183e.css",
|
|
130
|
+
"assets/chunks/login.49220d2.js",
|
|
131
|
+
"assets/chunks/login.3fc183e.css.map",
|
|
132
|
+
"assets/chunks/login.49220d2.js.map"
|
|
133
133
|
],
|
|
134
134
|
"names": [
|
|
135
135
|
"login"
|
|
@@ -140,10 +140,10 @@
|
|
|
140
140
|
"entry": true,
|
|
141
141
|
"initial": true,
|
|
142
142
|
"files": [
|
|
143
|
-
"main.12dd8b1.css",
|
|
144
|
-
"main.a0929a4.js",
|
|
145
|
-
"main.12dd8b1.css.map",
|
|
146
|
-
"main.a0929a4.js.map"
|
|
143
|
+
"assets/css/main.12dd8b1.css",
|
|
144
|
+
"assets/js/main.a0929a4.js",
|
|
145
|
+
"assets/css/main.12dd8b1.css.map",
|
|
146
|
+
"assets/js/main.a0929a4.js.map"
|
|
147
147
|
],
|
|
148
148
|
"names": [
|
|
149
149
|
"main"
|
|
@@ -154,10 +154,10 @@
|
|
|
154
154
|
"entry": false,
|
|
155
155
|
"initial": false,
|
|
156
156
|
"files": [
|
|
157
|
-
"project.6f85cd9.css",
|
|
158
|
-
"project.deaf2dc.js",
|
|
159
|
-
"project.6f85cd9.css.map",
|
|
160
|
-
"project.deaf2dc.js.map"
|
|
157
|
+
"assets/chunks/project.6f85cd9.css",
|
|
158
|
+
"assets/chunks/project.deaf2dc.js",
|
|
159
|
+
"assets/chunks/project.6f85cd9.css.map",
|
|
160
|
+
"assets/chunks/project.deaf2dc.js.map"
|
|
161
161
|
],
|
|
162
162
|
"names": [
|
|
163
163
|
"project"
|
|
@@ -168,10 +168,10 @@
|
|
|
168
168
|
"entry": false,
|
|
169
169
|
"initial": false,
|
|
170
170
|
"files": [
|
|
171
|
-
"signup.9ab12e1.css",
|
|
172
|
-
"signup.83e1afe.js",
|
|
173
|
-
"signup.9ab12e1.css.map",
|
|
174
|
-
"signup.83e1afe.js.map"
|
|
171
|
+
"assets/chunks/signup.9ab12e1.css",
|
|
172
|
+
"assets/chunks/signup.83e1afe.js",
|
|
173
|
+
"assets/chunks/signup.9ab12e1.css.map",
|
|
174
|
+
"assets/chunks/signup.83e1afe.js.map"
|
|
175
175
|
],
|
|
176
176
|
"names": [
|
|
177
177
|
"signup"
|
|
@@ -182,10 +182,10 @@
|
|
|
182
182
|
"entry": true,
|
|
183
183
|
"initial": true,
|
|
184
184
|
"files": [
|
|
185
|
-
"vendors.5024abb.css",
|
|
186
|
-
"vendors.278dc2f.js",
|
|
187
|
-
"vendors.5024abb.css.map",
|
|
188
|
-
"vendors.278dc2f.js.map"
|
|
185
|
+
"assets/css/vendors.5024abb.css",
|
|
186
|
+
"assets/js/vendors.278dc2f.js",
|
|
187
|
+
"assets/css/vendors.5024abb.css.map",
|
|
188
|
+
"assets/js/vendors.278dc2f.js.map"
|
|
189
189
|
],
|
|
190
190
|
"names": [
|
|
191
191
|
"vendors"
|
|
@@ -3654,7 +3654,7 @@
|
|
|
3654
3654
|
]
|
|
3655
3655
|
},
|
|
3656
3656
|
{
|
|
3657
|
-
"name": "./src/
|
|
3657
|
+
"name": "./src/common/data/open-source-projects.js",
|
|
3658
3658
|
"size": 710,
|
|
3659
3659
|
"chunks": [
|
|
3660
3660
|
2
|
|
@@ -10125,7 +10125,7 @@
|
|
|
10125
10125
|
]
|
|
10126
10126
|
},
|
|
10127
10127
|
{
|
|
10128
|
-
"name": "css ./node_modules/css-loader/dist/cjs.js??ref--6-0!./node_modules/postcss-loader/dist/cjs.js??ref--6-1!./src/
|
|
10128
|
+
"name": "css ./node_modules/css-loader/dist/cjs.js??ref--6-0!./node_modules/postcss-loader/dist/cjs.js??ref--6-1!./src/common/src/components/layout/footer/footer.module.css",
|
|
10129
10129
|
"size": 1115,
|
|
10130
10130
|
"chunks": [
|
|
10131
10131
|
2
|
|
@@ -10615,7 +10615,7 @@
|
|
|
10615
10615
|
]
|
|
10616
10616
|
},
|
|
10617
10617
|
{
|
|
10618
|
-
"name": "css ./node_modules/css-loader/dist/cjs.js??ref--6-0!./node_modules/postcss-loader/dist/cjs.js??ref--6-1!./src/
|
|
10618
|
+
"name": "css ./node_modules/css-loader/dist/cjs.js??ref--6-0!./node_modules/postcss-loader/dist/cjs.js??ref--6-1!./src/common/src/components/profile/profile.module.css",
|
|
10619
10619
|
"size": 1381,
|
|
10620
10620
|
"chunks": [
|
|
10621
10621
|
2
|
|
@@ -10657,7 +10657,7 @@
|
|
|
10657
10657
|
]
|
|
10658
10658
|
},
|
|
10659
10659
|
{
|
|
10660
|
-
"name": "css ./node_modules/css-loader/dist/cjs.js??ref--6-0!./node_modules/postcss-loader/dist/cjs.js??ref--6-1!./src/
|
|
10660
|
+
"name": "css ./node_modules/css-loader/dist/cjs.js??ref--6-0!./node_modules/postcss-loader/dist/cjs.js??ref--6-1!./src/common/src/components/ui-stack.module.css",
|
|
10661
10661
|
"size": 191,
|
|
10662
10662
|
"chunks": [
|
|
10663
10663
|
2
|
package/lib/cli.js
CHANGED
|
@@ -3,6 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.default = cli;
|
|
6
7
|
const path_1 = __importDefault(require("path"));
|
|
7
8
|
const yargs_1 = __importDefault(require("yargs"));
|
|
8
9
|
const update_notifier_1 = __importDefault(require("update-notifier"));
|
|
@@ -23,8 +24,8 @@ async function cli(pkg) {
|
|
|
23
24
|
json: true,
|
|
24
25
|
outDir: DEFAULT_OUTPUT_DIR,
|
|
25
26
|
artifactFilepaths: [
|
|
26
|
-
path_1.default.resolve(__dirname, '../__fixtures__/webpack-stats
|
|
27
|
-
path_1.default.resolve(__dirname, '../__fixtures__/webpack-stats
|
|
27
|
+
path_1.default.resolve(__dirname, '../__fixtures__/webpack-stats.current.json'),
|
|
28
|
+
path_1.default.resolve(__dirname, '../__fixtures__/webpack-stats.baseline.json'),
|
|
28
29
|
],
|
|
29
30
|
});
|
|
30
31
|
return;
|
|
@@ -46,6 +47,11 @@ async function cli(pkg) {
|
|
|
46
47
|
description: 'Save current stats as baseline',
|
|
47
48
|
type: 'boolean',
|
|
48
49
|
default: false,
|
|
50
|
+
})
|
|
51
|
+
.option('baseline-filepath', {
|
|
52
|
+
description: 'Baseline filepath, default: node_modules/.cache/bundle-stats/baseline.json',
|
|
53
|
+
type: 'string',
|
|
54
|
+
default: undefined,
|
|
49
55
|
})
|
|
50
56
|
.option('html', {
|
|
51
57
|
description: 'Save HTML report',
|
|
@@ -68,13 +74,13 @@ async function cli(pkg) {
|
|
|
68
74
|
.help()
|
|
69
75
|
.parseSync();
|
|
70
76
|
await (0, run_1.default)({
|
|
71
|
-
|
|
77
|
+
outDir: args.outDir,
|
|
72
78
|
compare: args.compare,
|
|
79
|
+
baseline: args.baseline,
|
|
80
|
+
baselineFilepath: args.baselineFilepath,
|
|
73
81
|
html: args.html,
|
|
74
82
|
json: args.json,
|
|
75
|
-
outDir: args.outDir,
|
|
76
83
|
artifactFilepaths: args._,
|
|
77
84
|
});
|
|
78
85
|
}
|
|
79
|
-
exports.default = cli;
|
|
80
86
|
//# sourceMappingURL=cli.js.map
|
package/lib/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/lib/run.js
CHANGED
|
@@ -3,6 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.default = run;
|
|
6
7
|
const path_1 = __importDefault(require("path"));
|
|
7
8
|
const fs_extra_1 = require("fs-extra");
|
|
8
9
|
const listr2_1 = require("listr2");
|
|
@@ -15,25 +16,24 @@ const plugin_webpack_validate_1 = __importDefault(require("@bundle-stats/plugin-
|
|
|
15
16
|
const cli_utils_1 = require("@bundle-stats/cli-utils");
|
|
16
17
|
const locales_json_1 = __importDefault(require("./locales.json"));
|
|
17
18
|
const REPORT_INFO_COLORS = {
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
const getReportInfoBorderColor = (reportInfo) => {
|
|
27
|
-
const { deltaType } = reportInfo.info;
|
|
28
|
-
return REPORT_INFO_COLORS[deltaType];
|
|
19
|
+
CHANGE: 'blue',
|
|
20
|
+
HIGH_NEGATIVE: 'red',
|
|
21
|
+
NEGATIVE: 'red',
|
|
22
|
+
LOW_NEGATIVE: 'yellow',
|
|
23
|
+
NO_CHANGE: 'gray',
|
|
24
|
+
LOW_POSITIVE: 'green',
|
|
25
|
+
POSITIVE: 'green',
|
|
26
|
+
HIGH_POSITIVE: 'green',
|
|
29
27
|
};
|
|
30
28
|
async function run(options) {
|
|
31
|
-
const { baseline, compare, html, json, outDir, artifactFilepaths } = options;
|
|
29
|
+
const { baseline, baselineFilepath, compare, html, json, outDir, artifactFilepaths } = options;
|
|
30
|
+
const baselineAbsolutePath = (0, cli_utils_1.getBaselinePath)(process.cwd(), outDir, baselineFilepath);
|
|
31
|
+
const baselinePath = (0, cli_utils_1.getBaselineRelativePath)(process.cwd(), '', baselineAbsolutePath);
|
|
32
32
|
const tasks = new listr2_1.Listr([
|
|
33
33
|
{
|
|
34
34
|
title: 'Read Webpack stats files',
|
|
35
35
|
task: async (ctx) => {
|
|
36
|
-
const sources = await Promise.all(artifactFilepaths.map((filepath) => (0,
|
|
36
|
+
const sources = await Promise.all(artifactFilepaths.map((filepath) => (0, cli_utils_1.readJSONStream)(filepath)));
|
|
37
37
|
sources.forEach((source, index) => {
|
|
38
38
|
const invalid = (0, plugin_webpack_validate_1.default)(source);
|
|
39
39
|
if (invalid) {
|
|
@@ -46,8 +46,7 @@ async function run(options) {
|
|
|
46
46
|
{
|
|
47
47
|
title: 'Read baseline data',
|
|
48
48
|
task: async (ctx, task) => {
|
|
49
|
-
|
|
50
|
-
task.title = `${task.title} (${baselineFilepath})`;
|
|
49
|
+
task.title = `${task.title} (${baselinePath})`;
|
|
51
50
|
ctx.sources = ctx.sources.concat([{ webpack: (0, plugin_webpack_filter_1.default)(ctx.baselineStats) }]);
|
|
52
51
|
},
|
|
53
52
|
skip: async (ctx) => {
|
|
@@ -59,11 +58,11 @@ async function run(options) {
|
|
|
59
58
|
}
|
|
60
59
|
let baselineStats = {};
|
|
61
60
|
try {
|
|
62
|
-
baselineStats = await (0, cli_utils_1.readBaseline)();
|
|
61
|
+
baselineStats = await (0, cli_utils_1.readBaseline)(baselineAbsolutePath);
|
|
63
62
|
ctx.baselineStats = baselineStats;
|
|
64
63
|
}
|
|
65
64
|
catch (err) {
|
|
66
|
-
return cli_utils_1.TEXT.
|
|
65
|
+
return cli_utils_1.TEXT.BASELINE_MISSING;
|
|
67
66
|
}
|
|
68
67
|
return false;
|
|
69
68
|
},
|
|
@@ -73,9 +72,8 @@ async function run(options) {
|
|
|
73
72
|
task: (ctx, task) => {
|
|
74
73
|
const stats = (0, lodash_1.get)(ctx, 'sources[0]webpack');
|
|
75
74
|
const filteredWebpackStats = (0, plugin_webpack_filter_1.default)(stats);
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
task.title = `${task.title} (${baselineFilepath})`;
|
|
75
|
+
return (0, cli_utils_1.writeBaseline)(filteredWebpackStats, baselineAbsolutePath).then(() => {
|
|
76
|
+
task.title = `${task.title} (${baselinePath})`;
|
|
79
77
|
});
|
|
80
78
|
},
|
|
81
79
|
skip: () => !baseline && cli_utils_1.TEXT.CLI_NO_BASELINE,
|
|
@@ -114,15 +112,16 @@ async function run(options) {
|
|
|
114
112
|
}
|
|
115
113
|
const { output, report } = result;
|
|
116
114
|
const reportInfo = (0, cli_utils_1.getReportInfo)(report);
|
|
117
|
-
if (reportInfo) {
|
|
115
|
+
if (reportInfo?.text) {
|
|
118
116
|
const infoBox = (0, boxen_1.default)(reportInfo.text, {
|
|
119
117
|
padding: 1,
|
|
120
|
-
borderColor:
|
|
118
|
+
borderColor: reportInfo.info?.deltaType
|
|
119
|
+
? REPORT_INFO_COLORS[reportInfo.info.deltaType]
|
|
120
|
+
: REPORT_INFO_COLORS.NO_CHANGE,
|
|
121
121
|
});
|
|
122
122
|
console.log(`\n${infoBox}`);
|
|
123
123
|
}
|
|
124
124
|
console.log('\nArtifacts:');
|
|
125
125
|
output?.map((reportPath) => console.log(`- ${reportPath}`));
|
|
126
126
|
}
|
|
127
|
-
exports.default = run;
|
|
128
127
|
//# sourceMappingURL=run.js.map
|