webpack-bundle-analyzer 3.4.1 → 3.6.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/src/parseUtils.js CHANGED
@@ -185,6 +185,8 @@ function isAsyncChunkPushExpression(node) {
185
185
  callee.object.left.object &&
186
186
  (
187
187
  callee.object.left.object.name === 'window' ||
188
+ // `self` is a common output.globalObject value used to support both workers and browsers
189
+ callee.object.left.object.name === 'self' ||
188
190
  // Webpack 4 uses `this` instead of `window`
189
191
  callee.object.left.object.type === 'ThisExpression'
190
192
  ) &&
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,8 +3,12 @@
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
 
9
+ <script>
10
+ window.enableWebSocket = <%- escapeJson(enableWebSocket) %>;
11
+ </script>
8
12
  <%- include('script', { filename: 'viewer.js' }) %>
9
13
  </head>
10
14
 
@@ -13,7 +17,6 @@
13
17
  <script>
14
18
  window.chartData = <%- escapeJson(chartData) %>;
15
19
  window.defaultSizes = <%- escapeJson(defaultSizes) %>;
16
- window.enableWebSocket = <%- escapeJson(enableWebSocket) %>;
17
20
  </script>
18
21
  </body>
19
22
  </html>