webpack-bundle-analyzer 3.4.1 → 3.5.0

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/CHANGELOG.md CHANGED
@@ -14,9 +14,14 @@ _Note: Gaps between patch versions are faulty, broken or test releases._
14
14
 
15
15
  <!-- Add changelog entries for new changes under this section -->
16
16
 
17
+ ## 3.5.0
18
+
19
+ * **Improvements**
20
+ * Improved report title and added favicon ([#310](https://github.com/webpack-contrib/webpack-bundle-analyzer/pull/310), [@gaokun](https://github.com/gaokun))
21
+
17
22
  ## 3.4.1
18
23
 
19
- * **Bug Fix**
24
+ * **Bug Fix**
20
25
  * Fix regression of requiring an object to be passed to `new BundleAnalyzerPlugin()` (issue [#300](https://github.com/webpack-contrib/webpack-bundle-analyzer/issues/300), fixed in [#302](https://github.com/webpack-contrib/webpack-bundle-analyzer/pull/302) by [@jerryOnlyZRJ](https://github.com/jerryOnlyZRJ))
21
26
 
22
27
  ## 3.4.0
package/lib/utils.js CHANGED
@@ -6,6 +6,7 @@ const {
6
6
 
7
7
  const _ = require('lodash');
8
8
 
9
+ const MONTHS = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
9
10
  exports.createAssetsFilter = createAssetsFilter;
10
11
 
11
12
  function createAssetsFilter(excludePatterns) {
@@ -32,4 +33,19 @@ function createAssetsFilter(excludePatterns) {
32
33
  } else {
33
34
  return () => true;
34
35
  }
35
- }
36
+ }
37
+ /**
38
+ * @desc get string of current time
39
+ * format: dd/MMM HH:mm
40
+ * */
41
+
42
+
43
+ exports.getCurrentTime = function () {
44
+ const time = new Date();
45
+ const year = time.getFullYear();
46
+ const month = MONTHS[time.getMonth()];
47
+ const day = time.getDate();
48
+ const hour = time.getHours();
49
+ const minute = time.getMinutes();
50
+ return `${day} ${month} ${year} at ${hour}:${minute}`;
51
+ };
package/lib/viewer.js CHANGED
@@ -26,6 +26,8 @@ const {
26
26
  bold
27
27
  } = require('chalk');
28
28
 
29
+ const utils = require('./utils');
30
+
29
31
  const Logger = require('./Logger');
30
32
 
31
33
  const analyzer = require('./analyzer');
@@ -38,6 +40,7 @@ module.exports = {
38
40
  // deprecated
39
41
  start: startServer
40
42
  };
43
+ const title = `${process.env.npm_package_name || 'Webpack Bundle Analyzer'} [${utils.getCurrentTime()}]`;
41
44
 
42
45
  function startServer(_x, _x2) {
43
46
  return _startServer.apply(this, arguments);
@@ -70,6 +73,7 @@ function _startServer() {
70
73
  app.use('/', (req, res) => {
71
74
  res.render('viewer', {
72
75
  mode: 'server',
76
+ title,
73
77
 
74
78
  get chartData() {
75
79
  return chartData;
@@ -148,6 +152,7 @@ function _generateReport() {
148
152
  yield new Promise((resolve, reject) => {
149
153
  ejs.renderFile(`${projectRoot}/views/viewer.ejs`, {
150
154
  mode: 'static',
155
+ title,
151
156
  chartData,
152
157
  defaultSizes,
153
158
  enableWebSocket: false,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "webpack-bundle-analyzer",
3
- "version": "3.4.1",
3
+ "version": "3.5.0",
4
4
  "description": "Webpack plugin and CLI utility that represents bundle content as convenient interactive zoomable treemap",
5
5
  "author": "Yury Grunin <grunin.ya@ya.ru>",
6
6
  "license": "MIT",
package/src/utils.js CHANGED
@@ -1,6 +1,8 @@
1
1
  const {inspect} = require('util');
2
2
  const _ = require('lodash');
3
3
 
4
+ const MONTHS = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
5
+
4
6
  exports.createAssetsFilter = createAssetsFilter;
5
7
 
6
8
  function createAssetsFilter(excludePatterns) {
@@ -32,3 +34,17 @@ function createAssetsFilter(excludePatterns) {
32
34
  return () => true;
33
35
  }
34
36
  }
37
+
38
+ /**
39
+ * @desc get string of current time
40
+ * format: dd/MMM HH:mm
41
+ * */
42
+ exports.getCurrentTime = function () {
43
+ const time = new Date();
44
+ const year = time.getFullYear();
45
+ const month = MONTHS[time.getMonth()];
46
+ const day = time.getDate();
47
+ const hour = time.getHours();
48
+ const minute = time.getMinutes();
49
+ return `${day} ${month} ${year} at ${hour}:${minute}`;
50
+ };
package/src/viewer.js CHANGED
@@ -10,6 +10,7 @@ const opener = require('opener');
10
10
  const mkdir = require('mkdirp');
11
11
  const {bold} = require('chalk');
12
12
 
13
+ const utils = require('./utils');
13
14
  const Logger = require('./Logger');
14
15
  const analyzer = require('./analyzer');
15
16
 
@@ -23,6 +24,8 @@ module.exports = {
23
24
  start: startServer
24
25
  };
25
26
 
27
+ const title = `${process.env.npm_package_name || 'Webpack Bundle Analyzer'} [${utils.getCurrentTime()}]`;
28
+
26
29
  async function startServer(bundleStats, opts) {
27
30
  const {
28
31
  port = 8888,
@@ -52,6 +55,7 @@ async function startServer(bundleStats, opts) {
52
55
  app.use('/', (req, res) => {
53
56
  res.render('viewer', {
54
57
  mode: 'server',
58
+ title,
55
59
  get chartData() { return chartData },
56
60
  defaultSizes,
57
61
  enableWebSocket: true,
@@ -133,6 +137,7 @@ async function generateReport(bundleStats, opts) {
133
137
  `${projectRoot}/views/viewer.ejs`,
134
138
  {
135
139
  mode: 'static',
140
+ title,
136
141
  chartData,
137
142
  defaultSizes,
138
143
  enableWebSocket: false,
package/views/viewer.ejs CHANGED
@@ -3,7 +3,8 @@
3
3
  <head>
4
4
  <meta charset="UTF-8"/>
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1"/>
6
- <title>Webpack Bundle Analyzer</title>
6
+ <title><%= title %></title>
7
+ <link rel="shortcut icon" href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAMAAACdt4HsAAABrVBMVEUAAAD///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+O1foceMD///+J0/qK1Pr7/v8Xdr/9///W8P4UdL7L7P0Scr2r4Pyj3vwad8D5/f/2/f+55f3E6f34+/2H0/ojfMKpzOd0rNgQcb3F3O/j9f7c8v6g3Pz0/P/w+v/q+P7n9v6T1/uQ1vuE0vqLut/y+v+Z2fvt+f+15Pzv9fuc2/vR7v2V2Pvd6/bg9P7I6/285/2y4/yp3/zp8vk8i8kqgMT7/P31+fyv4vxGkcz6/P6/6P3j7vfS5PNnpNUxhcbO7f7F6v3O4vHK3/DA2u631Ouy0eqXweKJud5wqthfoNMMbLvY8f73+v2dxeR8sNtTmdDx9/zX6PSjyeaCtd1YnNGX2PuQveCGt95Nls42h8dLlM3F4vBtAAAAM3RSTlMAAyOx0/sKBvik8opWGBMOAe3l1snDm2E9LSb06eHcu5JpHbarfHZCN9CBb08zzkdNS0kYaptYAAAFV0lEQVRYw92X51/aYBDHHS2O2qqttVbrqNq9m+TJIAYIShBkWwqIiCgoWvfeq7Z2/s29hyQNyUcR7LveGwVyXy6XH8/9rqxglLfUPLxVduUor3h0rfp2TYvpivk37929TkG037hffoX0+peVtZQc1589rigVUdXS/ABSAyEmGIO/1XfvldSK8vs3OqB6u3m0nxmIrvgB0dj7rr7Y9IbuF68hnfFaiHA/sxqm0wciIG43P60qKv9WXWc1RXGh/mFESFABTSBi0sNAKzqet17eCtOb3kZIDwxEEU0oAIJGYxNBDhBND29e0rtXXbcpuPmED9IhEAAQ/AXEaF8EPmnrrKsv0LvWR3fg5sWDNAFZOgAgaKvZDogHNU9MFwnnYROkc56RD5CjAbQX9Ow4g7upCsvYu55aSI/Nj0H1akgKQEUM94dwK65hYRmFU9MIcH/fqJYOZYcnuJSU/waKDgTOEVaVKhwrTRP5XzgSpAITYzom7UvkhFX5VutmxeNnWDjjswTKTyfgluNDGbUpWissXhF3s7mlSml+czWkg3D0l1nNjGNjz3myOQOa1KM/jOS6ebdbAVTCi4gljHSFrviza7tOgRWcS0MOUX9zdNgag5w7rRqA44Lzw0hr1WqES36dFliSJFlh2rXIae3FFcDDgKdxrUIDePr8jGcSClV1u7A9xeN0ModY/pHMxmR1EzRh8TJiwqsHmKW0l4FCEZI+jHio+JdPPE9qwQtTRxku2D8sIeRL2LnxWSllANCQGOIiqVHAz2ye2JR0DcH+HoxDkaADLjgxjKQ+AwCX/g0+DNgdG0ukYCONAe+dbc2IAc6fwt1ARoDSezNHxV2Cmzwv3O6lDMV55edBGwGK9n1+x2F8EDfAGCxug8MhpsMEcTEAWf3rx2vZhe/LAmtIn/6apE6PN0ULKgywD9mmdxbmFl3OvD5AS5fW5zLbv/YHmcsBTjf/afDz3MaZTVCfAP9z6/Bw6ycv8EUBWJIn9zYcoAWWlW9+OzO3vkTy8H+RANLmdrpOuYWdZYEXpo+TlCJrW5EARb7fF+bWdqf3hhyZI1nWJQHgznErZhbjoEsWqi8dQNoE294aldzFurwSABL2XXMf9+H1VQGke9exw5P/AnA5Pv5ngMul7LOvO922iwACu8WkCwLCafvM4CeWPxfA8lNHcWZSoi8EwMAIciKX2Z4SWCMAa3snCZ/G4EA8D6CMLNFsGQhkkz/gQNEBbPCbWsxGUpYVu3z8IyNAknwJkfPMEhLyrdi5RTyUVACkw4GSFRNWJNEW+fgPGwHD8/JxnRuLabN4CGNRkAE23na2+VmEAUmrYymSGjMAYqH84YUIyzgzs3XC7gNgH36Vcc4zKY9o9fgPBXUAiHHwVboBHGLiX6Zcjp1f2wu4tvzZKo0ecPnDtQYDQvJXaBeNzce45Fp28ZQLrEZVuFqgBwOalArKXnW1UzlnSusQKJqKYNuz4tOnI6sZG4zanpemv+7ySU2jbA9h6uhcgpfy6G2PahirDZ6zvq6zDduMVFTKvzw8wgyEdelwY9in3XkEPs3osJuwRQ4qTkfzifndg9Gfc4pdsu82+tTnHZTBa2EAMrqr2t43pguc8tNm7JQVQ2S0ukj2d22dhXYP0/veWtwKrCkNoNimAN5+Xr/oLrxswKbVJjteWrX7eR63o4j9q0GxnaBdWgGA5VStpanIjQmEhV0/nVt5VOFUvix6awJhPcAaTEShgrG+iGyvb5a0Ndb1YGHFPEwoqAinoaykaID1o1pdPNu7XsnCKQ3R+hwWIIhGvORcJUBYXe3Xa3vq/mF/N9V13ugufMkfXn+KHsRD0B8AAAAASUVORK5CYII=" type="image/x-icon" />
7
8
 
8
9
  <%- include('script', { filename: 'viewer.js' }) %>
9
10
  </head>