@taro-minify-pack/plugin-bundle-stats 0.1.4-alpha.3 → 0.1.4

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 CHANGED
@@ -1,3 +1,234 @@
1
1
  # @taro-minify-pack/plugin-bundle-stats
2
2
 
3
- > 集成 bundle-stats-webpack-plugin 到 Taro 项目,可视化分析打包结果,帮助优化代码体积和依赖关系。
3
+ 集成 bundle-stats-webpack-plugin 到 Taro 项目,可视化分析打包结果,帮助优化代码体积和依赖关系。
4
+
5
+ ## ✨ 功能特性
6
+
7
+ - **打包报告生成**:自动生成 HTML / JSON 格式的 Bundle Stats 报告,可视化展示打包结果
8
+ - **基线对比**:支持与基线版本对比,直观展示资源、模块、依赖的变化趋势
9
+ - **主包分析**:自动识别主包资源与模块,按业务模块 / 依赖模块分类展示
10
+ - **重点指标关注**:可配置重点关注资源、模块、依赖包,精准追踪关键指标变化
11
+ - **摘要报告**:构建完成后自动生成 Markdown 格式的摘要报告,方便在 CI 或消息通知中使用
12
+ - **报告上传**:支持自定义上传函数,将报告产物上传至 OSS 等存储服务
13
+
14
+ ## 📦 安装
15
+
16
+ ```bash
17
+ npm install @taro-minify-pack/plugin-bundle-stats
18
+ ```
19
+
20
+ ### yarn 安装
21
+ ```bash
22
+ yarn add @taro-minify-pack/plugin-bundle-stats
23
+ ```
24
+
25
+ ### pnpm 安装
26
+ ```bash
27
+ pnpm add @taro-minify-pack/plugin-bundle-stats
28
+ ```
29
+
30
+ ## ⚙️ 配置
31
+
32
+ ### Taro 配置
33
+ ```js
34
+ // config/index.js
35
+ module.exports = {
36
+ plugins: [
37
+ ['@taro-minify-pack/plugin-bundle-stats', {
38
+ // 报告输出目录(相对于项目根目录),默认为 'bundleStatsReport'
39
+ reportPath: 'bundleStatsReport',
40
+ // 基线文件路径,支持本地路径或远程 URL,默认为 'baseline.json'
41
+ baselinePath: 'baseline.json',
42
+ // 是否生成 HTML 报告,默认为 true
43
+ html: true,
44
+ // 是否生成 JSON 报告,默认为 true
45
+ json: true,
46
+ // 是否与基线对比,默认为 true
47
+ compare: true,
48
+ // 是否保存基线,默认为 true
49
+ baseline: true,
50
+ }],
51
+ ],
52
+ };
53
+ ```
54
+
55
+ ## 🚀 使用
56
+
57
+ ### 基本使用
58
+
59
+ 安装并配置插件后,执行 Taro 构建命令即可自动生成 Bundle Stats 报告:
60
+
61
+ ```bash
62
+ taro build --type weapp
63
+ ```
64
+
65
+ 构建完成后,在项目根目录的 `bundleStatsReport/` 目录下会生成以下文件:
66
+
67
+ - `bundle-stats.html` — 可视化 HTML 报告
68
+ - `bundle-stats.json` — JSON 格式原始数据
69
+ - `baseline.json` — 当前构建的基线文件(供下次对比使用)
70
+ - `summary-report.md` — Markdown 格式摘要报告
71
+
72
+ ### 基线对比
73
+
74
+ 首次构建会生成 `baseline.json`,后续构建会自动与基线进行对比,在报告中展示变化量(Delta)和变化比例(Delta Percentage)。
75
+
76
+ 如果需要与远程基线对比,可以配置 `baselinePath` 为 HTTP URL:
77
+
78
+ ```js
79
+ plugins: [
80
+ ['@taro-minify-pack/plugin-bundle-stats', {
81
+ baselinePath: 'https://your-cdn.com/baseline.json',
82
+ }],
83
+ ]
84
+ ```
85
+
86
+ ### 重点关注指标
87
+
88
+ 通过 `reportConfig.focusMetricRun` 配置需要重点关注的资源、模块和依赖包:
89
+
90
+ ```js
91
+ plugins: [
92
+ ['@taro-minify-pack/plugin-bundle-stats', {
93
+ reportConfig: {
94
+ focusMetricRun: {
95
+ // 重点关注资源路径
96
+ assets: ['pages/index/index.js', 'common/vendor.js'],
97
+ // 重点关注模块名称
98
+ modules: 'lodash',
99
+ // 重点关注依赖包名称
100
+ packages: ['lodash', 'dayjs'],
101
+ },
102
+ // 摘要报告中模块展示数量上限,默认为 20
103
+ displayLimit: 30,
104
+ },
105
+ }],
106
+ ]
107
+ ```
108
+
109
+ ### 上传报告
110
+
111
+ 通过 `upload` 配置自定义上传函数,将报告产物上传至 OSS 等存储服务:
112
+
113
+ ```js
114
+ const { defineAdapter, uploadAdapterAliOss } = require('@taro-minify-pack/helper')
115
+
116
+ const ossUploader = uploadAdapterAliOss({
117
+ region: 'oss-cn-hangzhou',
118
+ accessKeyId: 'your-access-key-id',
119
+ accessKeySecret: 'your-access-key-secret',
120
+ bucket: 'your-bucket',
121
+ })
122
+
123
+ module.exports = {
124
+ plugins: [
125
+ ['@taro-minify-pack/plugin-bundle-stats', {
126
+ upload: ossUploader,
127
+ }],
128
+ ],
129
+ }
130
+ ```
131
+
132
+ 配置 `upload` 后,可通过 Taro CLI 执行上传命令:
133
+
134
+ ```bash
135
+ taro upload-bundle-stats-report
136
+ ```
137
+
138
+ ## 📝 工作原理
139
+
140
+ 1. **Webpack 插件注入**:在构建阶段通过 `ctx.modifyWebpackChain` 将 `BundleStatsWebpackPlugin` 注入到 Webpack 配置中,生成 HTML / JSON 报告和基线文件
141
+
142
+ 2. **基线文件加载**:在构建开始前(`ctx.onBuildStart`),如果 `baselinePath` 为远程 URL,会自动下载基线文件到本地报告目录;如果为本地路径,则直接拷贝
143
+
144
+ 3. **摘要报告生成**:在构建完成后(`ctx.onBuildComplete`),读取 `bundle-stats.json` 和 `app.json`,按主包 / 分包维度分析资源与模块,生成 `summary-report.md` 摘要报告
145
+
146
+ 4. **报告上传**:注册 `upload-bundle-stats-report` CLI 命令,调用 `@taro-minify-pack/helper` 的 `uploadAssets` 方法,将报告目录下的所有文件上传至指定存储
147
+
148
+ ## ⚠️ 注意事项
149
+
150
+ 1. **仅支持 Webpack 5**:当前插件依赖 `bundle-stats-webpack-plugin`,仅适用于 Webpack 5 编译器
151
+ 2. **基线文件**:首次构建没有基线可对比,Delta 列会为空;建议在 CI 环境中将 `baseline.json` 作为制品保存
152
+ 3. **报告目录**:`reportPath` 目录位于项目根目录下,建议在 `.gitignore` 中忽略该目录
153
+ 4. **远程基线**:`baselinePath` 支持 HTTP/HTTPS URL,插件会在构建前自动下载
154
+
155
+ ## 🔧 配置选项
156
+
157
+ | 选项名 | 类型 | 默认值 | 描述 |
158
+ |-------|------|-------|------|
159
+ | `html` | `boolean` | `true` | 是否生成 HTML 报告 |
160
+ | `json` | `boolean` | `true` | 是否生成 JSON 报告 |
161
+ | `compare` | `boolean` | `true` | 是否与基线对比 |
162
+ | `baseline` | `boolean` | `true` | 是否保存基线文件 |
163
+ | `baselinePath` | `string` | `'baseline.json'` | 基线文件路径,支持本地路径或远程 URL |
164
+ | `reportPath` | `string` | `'bundleStatsReport'` | 报告输出目录(相对于项目根目录) |
165
+ | `upload` | `Uploader` | — | 自定义上传函数,用于上传报告产物 |
166
+ | `stats` | `Partial<WebpackStatsOptions>` | — | Webpack Stats 输出选项 |
167
+ | `reportConfig` | `object` | — | 摘要报告配置 |
168
+
169
+ ### `reportConfig` 配置说明
170
+
171
+ ```ts
172
+ interface ReportConfig {
173
+ focusMetricRun?: {
174
+ assets?: string[]
175
+ modules?: string
176
+ packages?: string[]
177
+ }
178
+ displayLimit?: number
179
+ }
180
+ ```
181
+
182
+ - `focusMetricRun.assets`:重点关注的资源路径列表,在摘要报告中单独展示
183
+ - `focusMetricRun.modules`:重点关注的模块名称,在摘要报告中单独展示
184
+ - `focusMetricRun.packages`:重点关注的依赖包名称列表,在摘要报告中单独展示
185
+ - `displayLimit`:摘要报告中业务模块 / 依赖模块的展示数量上限,默认为 20
186
+
187
+ ### `stats` 配置说明
188
+
189
+ ```ts
190
+ interface WebpackStatsOptions {
191
+ assets?: boolean
192
+ chunks?: boolean
193
+ modules?: boolean
194
+ hash?: boolean
195
+ builtAt?: boolean
196
+ }
197
+ ```
198
+
199
+ - `assets`:是否输出资源信息,默认 `true`
200
+ - `chunks`:是否输出 chunk 信息,默认 `true`
201
+ - `modules`:是否输出模块信息,默认 `true`
202
+ - `hash`:是否输出构建 hash 信息,默认 `true`
203
+ - `builtAt`:是否输出构建时间信息,默认 `true`
204
+
205
+ ## 🤝 常见问题
206
+
207
+ ### 1. 构建后没有生成报告?
208
+ - 请确认插件已正确配置在 `plugins` 数组中
209
+ - 确认使用的是 Webpack 5 编译器(`compiler.type` 为 `webpack5`)
210
+ - 检查构建日志中是否有 `bundle-stats` 相关错误
211
+
212
+ ### 2. 摘要报告没有生成?
213
+ - 确认构建成功完成,`bundle-stats.json` 和 `app.json` 文件都已生成
214
+ - 如果 `bundle-stats.json` 不存在,可能是 `json` 选项被关闭了,请确保 `json: true`
215
+
216
+ ### 3. 基线对比没有数据?
217
+ - 首次构建没有基线文件,Delta 列为空是正常的
218
+ - 确认 `baseline: true` 以保存基线文件供下次对比
219
+ - 如果使用远程基线,确认 URL 可访问且文件格式正确
220
+
221
+ ### 4. 上传报告失败?
222
+ - 确认 `upload` 函数配置正确,可参考 `@taro-minify-pack/helper` 的上传适配器
223
+ - 检查网络连接和存储服务权限
224
+ - 确认通过 `taro upload-bundle-stats-report` 命令执行上传
225
+
226
+ ## 📄 许可证
227
+
228
+ MIT License
229
+
230
+ ## 🤝 贡献
231
+
232
+ 欢迎提交 Issue 和 Pull Request!
233
+
234
+ > 该插件是 @taro-minify-pack 系列插件的一部分,致力于提供完整的 Taro 项目优化解决方案。
package/dist/index.js CHANGED
@@ -31,6 +31,10 @@ const promises_1 = require("stream/promises");
31
31
  const summarize_report_1 = require("./summarize-report");
32
32
  const helper_1 = require("@taro-minify-pack/helper");
33
33
  const bundleStatsDefaultOpt = {
34
+ json: true,
35
+ html: true,
36
+ compare: true,
37
+ baseline: true,
34
38
  reportPath: 'bundleStatsReport',
35
39
  baselinePath: 'baseline.json'
36
40
  };
@@ -56,18 +60,20 @@ exports.default = (ctx, pluginOpts = {}) => {
56
60
  return fs_1.default.copyFileSync(baselinePath, reportBaselineFilepath);
57
61
  const stream = got_1.default.stream(baselinePath);
58
62
  yield (0, promises_1.pipeline)(stream, fs_1.default.createWriteStream(reportBaselineFilepath));
59
- console.log(`✅ load baseline.json success. ${reportBaselineFilepath}`);
63
+ console.log(`✨ load baseline.json success. ${reportBaselineFilepath}`);
60
64
  }));
61
65
  ctx.onBuildComplete(() => {
62
66
  const { appPath, outputPath } = ctx.paths;
63
67
  const appConfigPath = path_1.default.join(outputPath, 'app.json');
64
- const appConfig = JSON.parse(fs_1.default.readFileSync(appConfigPath, 'utf8'));
65
68
  const bundleStatsReportPath = path_1.default.resolve(appPath, reportPath, 'bundle-stats.json');
69
+ if (!fs_1.default.existsSync(bundleStatsReportPath) || !fs_1.default.existsSync(appConfigPath))
70
+ return;
71
+ const appConfig = JSON.parse(fs_1.default.readFileSync(appConfigPath, 'utf8'));
66
72
  const bundleStatsReport = JSON.parse(fs_1.default.readFileSync(bundleStatsReportPath, 'utf8'));
67
73
  const reportStr = (0, summarize_report_1.summarizeReport)({ appConfig, bundleStatsReport });
68
74
  const summaryReportPath = path_1.default.resolve(appPath, reportPath, 'summary-report.md');
69
75
  fs_1.default.writeFileSync(summaryReportPath, reportStr);
70
- console.log('✅ generate summary-report.md success.');
76
+ console.log('✨ generate summary-report.md success.');
71
77
  });
72
78
  ctx.registerCommand({
73
79
  name: 'upload-bundle-stats-report',
@@ -75,8 +81,12 @@ exports.default = (ctx, pluginOpts = {}) => {
75
81
  return __awaiter(this, void 0, void 0, function* () {
76
82
  const { appPath } = ctx.paths;
77
83
  const assetsDirPath = path_1.default.resolve(appPath, reportPath);
84
+ if (!fs_1.default.existsSync(assetsDirPath))
85
+ return console.log('bundle-stats report directory not exists, upload bundle-stats report skipped.');
86
+ if (!upload)
87
+ return console.log('No upload configuration, upload bundle-stats report skipped.');
78
88
  yield (0, helper_1.uploadAssets)({ assetsDirPath, upload });
79
- console.log('✅ upload bundle-stats report success.');
89
+ console.log('✨ upload bundle-stats report success.');
80
90
  });
81
91
  }
82
92
  });
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AACA,6EAAsE;AAEtE,8CAAqB;AACrB,gDAAuB;AACvB,4CAAmB;AACnB,8CAA0C;AAC1C,yDAAoD;AACpD,qDAAuD;AAKvD,MAAM,qBAAqB,GAAmB;IAC5C,UAAU,EAAE,mBAAmB;IAC/B,YAAY,EAAE,eAAe;CAC9B,CAAA;AACD,kBAAe,CAAC,GAAmB,EAAE,aAAsC,EAAE,EAAE,EAAE;IAC/E,MAAM,SAAS,mCAAwB,qBAAqB,GAAK,UAAU,CAAE,CAAA;IAC7E,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,KAAc,SAAS,EAAlB,IAAI,UAAK,SAAS,EAAzD,wCAA6C,CAAY,CAAA;IAE/D,GAAG,CAAC,kBAAkB,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;QACnC,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,GAAG,CAAC,KAAK,CAAA;QACzC,MAAM,MAAM,GAAG,cAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,cAAI,CAAC,OAAO,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAA;QAC3E,MAAM,gBAAgB,GAAG,cAAI,CAAC,OAAO,CAAC,OAAO,EAAE,UAAU,EAAE,eAAe,CAAC,CAAA;QAC3E,MAAM,MAAM,mCAA0C,IAAI,KAAE,gBAAgB,EAAE,MAAM,GAAE,CAAA;QACtF,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,sDAAwB,EAAE,CAAC,MAAM,CAAC,CAAC,CAAA;IACtE,CAAC,CAAC,CAAA;IAEF,GAAG,CAAC,YAAY,CAAC,GAAS,EAAE;QAC1B,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,CAAC,KAAK,CAAA;QAC7B,MAAM,aAAa,GAAG,cAAI,CAAC,OAAO,CAAC,OAAO,EAAE,UAAU,CAAC,CAAA;QACvD,MAAM,sBAAsB,GAAG,cAAI,CAAC,OAAO,CAAC,aAAa,EAAE,eAAe,CAAC,CAAA;QAC3E,IAAI,CAAC,YAAY,IAAI,YAAY,KAAK,sBAAsB;YAAE,OAAM;QACpE,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,aAAa,CAAC;YAAE,YAAE,CAAC,SAAS,CAAC,aAAa,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;QACnF,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC;YAAE,OAAO,YAAE,CAAC,YAAY,CAAC,YAAY,EAAE,sBAAsB,CAAC,CAAA;QACnG,MAAM,MAAM,GAAG,aAAG,CAAC,MAAM,CAAC,YAAY,CAAC,CAAA;QACvC,MAAM,IAAA,mBAAQ,EAAC,MAAM,EAAE,YAAE,CAAC,iBAAiB,CAAC,sBAAsB,CAAC,CAAC,CAAA;QACpE,OAAO,CAAC,GAAG,CAAC,iCAAiC,sBAAsB,EAAE,CAAC,CAAA;IACxE,CAAC,CAAA,CAAC,CAAA;IAEF,GAAG,CAAC,eAAe,CAAC,GAAG,EAAE;QACvB,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,GAAG,CAAC,KAAK,CAAA;QACzC,MAAM,aAAa,GAAG,cAAI,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,CAAA;QACvD,MAAM,SAAS,GAAc,IAAI,CAAC,KAAK,CAAC,YAAE,CAAC,YAAY,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC,CAAA;QAC/E,MAAM,qBAAqB,GAAG,cAAI,CAAC,OAAO,CAAC,OAAO,EAAE,UAAU,EAAE,mBAAmB,CAAC,CAAA;QACpF,MAAM,iBAAiB,GAAsB,IAAI,CAAC,KAAK,CAAC,YAAE,CAAC,YAAY,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC,CAAA;QACvG,MAAM,SAAS,GAAG,IAAA,kCAAe,EAAC,EAAE,SAAS,EAAE,iBAAiB,EAAE,CAAC,CAAA;QACnE,MAAM,iBAAiB,GAAG,cAAI,CAAC,OAAO,CAAC,OAAO,EAAE,UAAU,EAAE,mBAAmB,CAAC,CAAA;QAChF,YAAE,CAAC,aAAa,CAAC,iBAAiB,EAAE,SAAS,CAAC,CAAA;QAC9C,OAAO,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAA;IACtD,CAAC,CAAC,CAAA;IAEF,GAAG,CAAC,eAAe,CAAC;QAClB,IAAI,EAAE,4BAA4B;QAC5B,EAAE;;gBACN,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,CAAC,KAAK,CAAA;gBAC7B,MAAM,aAAa,GAAG,cAAI,CAAC,OAAO,CAAC,OAAO,EAAE,UAAU,CAAC,CAAA;gBACvD,MAAM,IAAA,qBAAY,EAAC,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC,CAAA;gBAC7C,OAAO,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAA;YACtD,CAAC;SAAA;KACF,CAAC,CAAA;AACJ,CAAC,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -46,13 +46,6 @@ const formatSize = (size) => {
46
46
  return `${(size / 1024).toFixed(2)}KB`;
47
47
  return `${(size / 1024 / 1024).toFixed(2)}MB`;
48
48
  };
49
- const formatSymbol = (val) => {
50
- if (val > 0)
51
- return '+';
52
- if (val < 0)
53
- return '-';
54
- return '';
55
- };
56
49
  /**
57
50
  * 统计
58
51
  */
@@ -60,7 +53,7 @@ const summaryMetric = (metric) => {
60
53
  const currentTotalSize = metric.reduce((result, item) => getCurMetricRunInfo(item).value + result, 0);
61
54
  const baselineTotalSize = metric.reduce((result, item) => getBaselineMetricRunInfo(item).value + result, 0);
62
55
  const sizeDelta = currentTotalSize - baselineTotalSize;
63
- const displaySizeDelta = `${formatSymbol(sizeDelta)}${formatSize(sizeDelta)}`;
56
+ const displaySizeDelta = `${sizeDelta > 0 ? '+' : ''}${formatSize(sizeDelta)}`;
64
57
  const displayCurrentTotalSize = formatSize(currentTotalSize);
65
58
  const displayBaselineTotalSize = formatSize(baselineTotalSize);
66
59
  return { currentTotalSize, baselineTotalSize, sizeDelta, displayCurrentTotalSize, displayBaselineTotalSize, displaySizeDelta };
@@ -1 +1 @@
1
- {"version":3,"file":"summarize-report.js","sourceRoot":"","sources":["../src/summarize-report.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"summarize-report.js","sourceRoot":"","sources":["../src/summarize-report.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -76,7 +76,7 @@ export interface BundleStatsReport {
76
76
  }
77
77
  export interface FocusMetricRun {
78
78
  assets: string[];
79
- modules: string;
79
+ modules: string[];
80
80
  packages: string[];
81
81
  }
82
82
  export interface SummarizeReportOpt {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@taro-minify-pack/plugin-bundle-stats",
3
- "version": "0.1.4-alpha.3",
3
+ "version": "0.1.4",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -19,7 +19,7 @@
19
19
  "dayjs": "^1.11.21",
20
20
  "got": "^11.8.6",
21
21
  "handlebars": "^4.7.9",
22
- "@taro-minify-pack/helper": "0.1.4-alpha.3"
22
+ "@taro-minify-pack/helper": "0.1.4"
23
23
  },
24
24
  "devDependencies": {
25
25
  "@tarojs/service": "^4.0.8",
package/src/index.ts CHANGED
@@ -12,6 +12,10 @@ import { AppConfig } from '@tarojs/taro'
12
12
  export type { BundleStatsOpt } from './types'
13
13
 
14
14
  const bundleStatsDefaultOpt: BundleStatsOpt = {
15
+ json: true,
16
+ html: true,
17
+ compare: true,
18
+ baseline: true,
15
19
  reportPath: 'bundleStatsReport',
16
20
  baselinePath: 'baseline.json'
17
21
  }
@@ -36,19 +40,20 @@ export default (ctx: IPluginContext, pluginOpts: Partial<BundleStatsOpt> = {}) =
36
40
  if (!/https?:\/\//.test(baselinePath)) return fs.copyFileSync(baselinePath, reportBaselineFilepath)
37
41
  const stream = got.stream(baselinePath)
38
42
  await pipeline(stream, fs.createWriteStream(reportBaselineFilepath))
39
- console.log(`✅ load baseline.json success. ${reportBaselineFilepath}`)
43
+ console.log(`✨ load baseline.json success. ${reportBaselineFilepath}`)
40
44
  })
41
45
 
42
46
  ctx.onBuildComplete(() => {
43
47
  const { appPath, outputPath } = ctx.paths
44
48
  const appConfigPath = path.join(outputPath, 'app.json')
45
- const appConfig: AppConfig = JSON.parse(fs.readFileSync(appConfigPath, 'utf8'))
46
49
  const bundleStatsReportPath = path.resolve(appPath, reportPath, 'bundle-stats.json')
50
+ if (!fs.existsSync(bundleStatsReportPath) || !fs.existsSync(appConfigPath)) return
51
+ const appConfig: AppConfig = JSON.parse(fs.readFileSync(appConfigPath, 'utf8'))
47
52
  const bundleStatsReport: BundleStatsReport = JSON.parse(fs.readFileSync(bundleStatsReportPath, 'utf8'))
48
53
  const reportStr = summarizeReport({ appConfig, bundleStatsReport })
49
54
  const summaryReportPath = path.resolve(appPath, reportPath, 'summary-report.md')
50
55
  fs.writeFileSync(summaryReportPath, reportStr)
51
- console.log('✅ generate summary-report.md success.')
56
+ console.log('✨ generate summary-report.md success.')
52
57
  })
53
58
 
54
59
  ctx.registerCommand({
@@ -56,8 +61,10 @@ export default (ctx: IPluginContext, pluginOpts: Partial<BundleStatsOpt> = {}) =
56
61
  async fn () {
57
62
  const { appPath } = ctx.paths
58
63
  const assetsDirPath = path.resolve(appPath, reportPath)
64
+ if (!fs.existsSync(assetsDirPath)) return console.log('bundle-stats report directory not exists, upload bundle-stats report skipped.')
65
+ if (!upload) return console.log('No upload configuration, upload bundle-stats report skipped.')
59
66
  await uploadAssets({ assetsDirPath, upload })
60
- console.log('✅ upload bundle-stats report success.')
67
+ console.log('✨ upload bundle-stats report success.')
61
68
  }
62
69
  })
63
70
  }
@@ -45,12 +45,6 @@ const formatSize = (size: number) => {
45
45
  return `${(size / 1024 / 1024).toFixed(2)}MB`
46
46
  }
47
47
 
48
- const formatSymbol = (val: number) => {
49
- if (val > 0) return '+'
50
- if (val < 0) return '-'
51
- return ''
52
- }
53
-
54
48
  /**
55
49
  * 统计
56
50
  */
@@ -58,7 +52,7 @@ const summaryMetric = <T extends BaseMetricRun> (metric: Metric<T>[]) => {
58
52
  const currentTotalSize = metric.reduce((result, item) => getCurMetricRunInfo(item).value + result, 0)
59
53
  const baselineTotalSize = metric.reduce((result, item) => getBaselineMetricRunInfo(item).value + result, 0)
60
54
  const sizeDelta = currentTotalSize - baselineTotalSize
61
- const displaySizeDelta = `${formatSymbol(sizeDelta)}${formatSize(sizeDelta)}`
55
+ const displaySizeDelta = `${sizeDelta > 0 ? '+' : ''}${formatSize(sizeDelta)}`
62
56
  const displayCurrentTotalSize = formatSize(currentTotalSize)
63
57
  const displayBaselineTotalSize = formatSize(baselineTotalSize)
64
58
  return { currentTotalSize, baselineTotalSize, sizeDelta, displayCurrentTotalSize, displayBaselineTotalSize, displaySizeDelta }
package/src/types.ts CHANGED
@@ -88,7 +88,7 @@ export interface BundleStatsReport {
88
88
 
89
89
  export interface FocusMetricRun {
90
90
  assets: string[],
91
- modules: string,
91
+ modules: string[],
92
92
  packages: string[],
93
93
  }
94
94