webpack-bundle-analyzer 3.0.1 → 3.0.2
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 +9 -0
- package/lib/BundleAnalyzerPlugin.js +11 -8
- package/lib/Logger.js +2 -28
- package/lib/analyzer.js +24 -43
- package/lib/bin/analyzer.js +18 -22
- package/lib/index.js +3 -2
- package/lib/parseUtils.js +4 -2
- package/lib/tree/BaseFolder.js +5 -3
- package/lib/tree/ConcatenatedModule.js +8 -8
- package/lib/tree/ContentFolder.js +7 -5
- package/lib/tree/ContentModule.js +7 -5
- package/lib/tree/Folder.js +8 -8
- package/lib/tree/Module.js +2 -2
- package/lib/tree/utils.js +2 -2
- package/lib/utils.js +3 -2
- package/lib/viewer.js +26 -36
- package/package.json +6 -6
package/CHANGELOG.md
CHANGED
|
@@ -14,6 +14,15 @@ _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.0.2
|
|
18
|
+
|
|
19
|
+
* **Improvements**
|
|
20
|
+
* Drop `@babel/runtime` dependency ([#209](https://github.com/webpack-contrib/webpack-bundle-analyzer/pull/209), [@realityking](https://github.com/realityking))
|
|
21
|
+
* Properly specify minimal Node.js version in `.babelrc` ([#209](https://github.com/webpack-contrib/webpack-bundle-analyzer/pull/209), [@realityking](https://github.com/realityking))
|
|
22
|
+
|
|
23
|
+
* **Bug Fix**
|
|
24
|
+
* Move some "dependencies" to "devDependencies" ([#209](https://github.com/webpack-contrib/webpack-bundle-analyzer/pull/209), [@realityking](https://github.com/realityking))
|
|
25
|
+
|
|
17
26
|
## 3.0.1
|
|
18
27
|
|
|
19
28
|
* **Bug Fix**
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
|
|
4
4
|
|
|
5
|
-
var
|
|
5
|
+
function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
|
|
6
6
|
|
|
7
|
-
var
|
|
7
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }
|
|
8
|
+
|
|
9
|
+
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
8
10
|
|
|
9
11
|
const bfj = require('bfj');
|
|
10
12
|
|
|
@@ -12,8 +14,9 @@ const path = require('path');
|
|
|
12
14
|
|
|
13
15
|
const mkdir = require('mkdirp');
|
|
14
16
|
|
|
15
|
-
const
|
|
16
|
-
|
|
17
|
+
const {
|
|
18
|
+
bold
|
|
19
|
+
} = require('chalk');
|
|
17
20
|
|
|
18
21
|
const Logger = require('./Logger');
|
|
19
22
|
|
|
@@ -21,7 +24,7 @@ const viewer = require('./viewer');
|
|
|
21
24
|
|
|
22
25
|
class BundleAnalyzerPlugin {
|
|
23
26
|
constructor(opts) {
|
|
24
|
-
this.opts = (
|
|
27
|
+
this.opts = _objectSpread({
|
|
25
28
|
analyzerMode: 'server',
|
|
26
29
|
analyzerHost: '127.0.0.1',
|
|
27
30
|
analyzerPort: 8888,
|
|
@@ -80,7 +83,7 @@ class BundleAnalyzerPlugin {
|
|
|
80
83
|
generateStatsFile(stats) {
|
|
81
84
|
var _this = this;
|
|
82
85
|
|
|
83
|
-
return (
|
|
86
|
+
return _asyncToGenerator(function* () {
|
|
84
87
|
const statsFilepath = path.resolve(_this.compiler.outputPath, _this.opts.statsFilename);
|
|
85
88
|
mkdir.sync(path.dirname(statsFilepath));
|
|
86
89
|
|
|
@@ -104,7 +107,7 @@ class BundleAnalyzerPlugin {
|
|
|
104
107
|
startAnalyzerServer(stats) {
|
|
105
108
|
var _this2 = this;
|
|
106
109
|
|
|
107
|
-
return (
|
|
110
|
+
return _asyncToGenerator(function* () {
|
|
108
111
|
if (_this2.server) {
|
|
109
112
|
(yield _this2.server).updateChartData(stats);
|
|
110
113
|
} else {
|
package/lib/Logger.js
CHANGED
|
@@ -1,9 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
|
-
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
6
|
-
|
|
7
3
|
const LEVELS = ['debug', 'info', 'warn', 'error', 'silent'];
|
|
8
4
|
const LEVEL_TO_CONSOLE_METHOD = new Map([['debug', 'log'], ['info', 'log'], ['warn', 'log']]);
|
|
9
5
|
|
|
@@ -17,31 +13,9 @@ class Logger {
|
|
|
17
13
|
const levelIndex = LEVELS.indexOf(level);
|
|
18
14
|
if (levelIndex === -1) throw new Error(`Invalid log level "${level}". Use one of these: ${LEVELS.join(', ')}`);
|
|
19
15
|
this.activeLevels.clear();
|
|
20
|
-
var _iteratorNormalCompletion = true;
|
|
21
|
-
var _didIteratorError = false;
|
|
22
|
-
var _iteratorError = undefined;
|
|
23
|
-
|
|
24
|
-
try {
|
|
25
|
-
for (var _iterator = LEVELS.entries()[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
|
|
26
|
-
const _step$value = (0, _slicedToArray2.default)(_step.value, 2),
|
|
27
|
-
i = _step$value[0],
|
|
28
|
-
level = _step$value[1];
|
|
29
16
|
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
} catch (err) {
|
|
33
|
-
_didIteratorError = true;
|
|
34
|
-
_iteratorError = err;
|
|
35
|
-
} finally {
|
|
36
|
-
try {
|
|
37
|
-
if (!_iteratorNormalCompletion && _iterator.return != null) {
|
|
38
|
-
_iterator.return();
|
|
39
|
-
}
|
|
40
|
-
} finally {
|
|
41
|
-
if (_didIteratorError) {
|
|
42
|
-
throw _iteratorError;
|
|
43
|
-
}
|
|
44
|
-
}
|
|
17
|
+
for (const [i, level] of LEVELS.entries()) {
|
|
18
|
+
if (i >= levelIndex) this.activeLevels.add(level);
|
|
45
19
|
}
|
|
46
20
|
}
|
|
47
21
|
|
package/lib/analyzer.js
CHANGED
|
@@ -12,11 +12,13 @@ const Logger = require('./Logger');
|
|
|
12
12
|
|
|
13
13
|
const Folder = require('./tree/Folder').default;
|
|
14
14
|
|
|
15
|
-
const
|
|
16
|
-
|
|
15
|
+
const {
|
|
16
|
+
parseBundle
|
|
17
|
+
} = require('./parseUtils');
|
|
17
18
|
|
|
18
|
-
const
|
|
19
|
-
|
|
19
|
+
const {
|
|
20
|
+
createAssetsFilter
|
|
21
|
+
} = require('./utils');
|
|
20
22
|
|
|
21
23
|
const FILENAME_QUERY_REGEXP = /\?.*$/;
|
|
22
24
|
module.exports = {
|
|
@@ -25,12 +27,10 @@ module.exports = {
|
|
|
25
27
|
};
|
|
26
28
|
|
|
27
29
|
function getViewerData(bundleStats, bundleDir, opts) {
|
|
28
|
-
const
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
excludeAssets = _ref$excludeAssets === void 0 ? null : _ref$excludeAssets;
|
|
33
|
-
|
|
30
|
+
const {
|
|
31
|
+
logger = new Logger(),
|
|
32
|
+
excludeAssets = null
|
|
33
|
+
} = opts || {};
|
|
34
34
|
const isAssetIncluded = createAssetsFilter(excludeAssets); // Sometimes all the information is located in `children` array (e.g. problem in #10)
|
|
35
35
|
|
|
36
36
|
if (_.isEmpty(bundleStats.assets) && !_.isEmpty(bundleStats.children)) {
|
|
@@ -51,41 +51,22 @@ function getViewerData(bundleStats, bundleDir, opts) {
|
|
|
51
51
|
if (bundleDir) {
|
|
52
52
|
bundlesSources = {};
|
|
53
53
|
parsedModules = {};
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
for (var _iterator = bundleStats.assets[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
|
|
60
|
-
const statAsset = _step.value;
|
|
61
|
-
const assetFile = path.join(bundleDir, statAsset.name);
|
|
62
|
-
let bundleInfo;
|
|
63
|
-
|
|
64
|
-
try {
|
|
65
|
-
bundleInfo = parseBundle(assetFile);
|
|
66
|
-
} catch (err) {
|
|
67
|
-
const msg = err.code === 'ENOENT' ? 'no such file' : err.message;
|
|
68
|
-
logger.warn(`Error parsing bundle asset "${assetFile}": ${msg}`);
|
|
69
|
-
continue;
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
bundlesSources[statAsset.name] = bundleInfo.src;
|
|
73
|
-
|
|
74
|
-
_.assign(parsedModules, bundleInfo.modules);
|
|
75
|
-
}
|
|
76
|
-
} catch (err) {
|
|
77
|
-
_didIteratorError = true;
|
|
78
|
-
_iteratorError = err;
|
|
79
|
-
} finally {
|
|
54
|
+
|
|
55
|
+
for (const statAsset of bundleStats.assets) {
|
|
56
|
+
const assetFile = path.join(bundleDir, statAsset.name);
|
|
57
|
+
let bundleInfo;
|
|
58
|
+
|
|
80
59
|
try {
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
throw _iteratorError;
|
|
87
|
-
}
|
|
60
|
+
bundleInfo = parseBundle(assetFile);
|
|
61
|
+
} catch (err) {
|
|
62
|
+
const msg = err.code === 'ENOENT' ? 'no such file' : err.message;
|
|
63
|
+
logger.warn(`Error parsing bundle asset "${assetFile}": ${msg}`);
|
|
64
|
+
continue;
|
|
88
65
|
}
|
|
66
|
+
|
|
67
|
+
bundlesSources[statAsset.name] = bundleInfo.src;
|
|
68
|
+
|
|
69
|
+
_.assign(parsedModules, bundleInfo.modules);
|
|
89
70
|
}
|
|
90
71
|
|
|
91
72
|
if (_.isEmpty(bundlesSources)) {
|
package/lib/bin/analyzer.js
CHANGED
|
@@ -1,20 +1,18 @@
|
|
|
1
1
|
#! /usr/bin/env node
|
|
2
2
|
"use strict";
|
|
3
3
|
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
const _require = require('path'),
|
|
9
|
-
resolve = _require.resolve,
|
|
10
|
-
dirname = _require.dirname;
|
|
4
|
+
const {
|
|
5
|
+
resolve,
|
|
6
|
+
dirname
|
|
7
|
+
} = require('path');
|
|
11
8
|
|
|
12
9
|
const _ = require('lodash');
|
|
13
10
|
|
|
14
11
|
const commander = require('commander');
|
|
15
12
|
|
|
16
|
-
const
|
|
17
|
-
|
|
13
|
+
const {
|
|
14
|
+
magenta
|
|
15
|
+
} = require('chalk');
|
|
18
16
|
|
|
19
17
|
const analyzer = require('../analyzer');
|
|
20
18
|
|
|
@@ -31,19 +29,17 @@ const program = commander.version(require('../../package.json').version).usage(`
|
|
|
31
29
|
bundleDir Directory containing all generated bundles.
|
|
32
30
|
You should provided it if you want analyzer to show you the real parsed module sizes.
|
|
33
31
|
By default a directory of stats file is used.`).option('-m, --mode <mode>', 'Analyzer mode. Should be `server` or `static`.' + br('In `server` mode analyzer will start HTTP server to show bundle report.') + br('In `static` mode single HTML file with bundle report will be generated.'), 'server').option('-h, --host <host>', 'Host that will be used in `server` mode to start HTTP server.', '127.0.0.1').option('-p, --port <n>', 'Port that will be used in `server` mode to start HTTP server.', Number, 8888).option('-r, --report <file>', 'Path to bundle report file that will be generated in `static` mode.', 'report.html').option('-s, --default-sizes <type>', 'Module sizes to show in treemap by default.' + br(`Possible values: ${[...SIZES].join(', ')}`), 'parsed').option('-O, --no-open', "Don't open report in default browser automatically.").option('-e, --exclude <regexp>', 'Assets that should be excluded from the report.' + br('Can be specified multiple times.'), array()).option('-l, --log-level <level>', 'Log level.' + br(`Possible values: ${[...Logger.levels].join(', ')}`), Logger.defaultLevel).parse(process.argv);
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
bundleDir = _program$args[1];
|
|
46
|
-
|
|
32
|
+
let {
|
|
33
|
+
mode,
|
|
34
|
+
host,
|
|
35
|
+
port,
|
|
36
|
+
report: reportFilename,
|
|
37
|
+
defaultSizes,
|
|
38
|
+
logLevel,
|
|
39
|
+
open: openBrowser,
|
|
40
|
+
exclude: excludeAssets,
|
|
41
|
+
args: [bundleStatsFile, bundleDir]
|
|
42
|
+
} = program;
|
|
47
43
|
const logger = new Logger(logLevel);
|
|
48
44
|
if (!bundleStatsFile) showHelp('Provide path to Webpack Stats file as first argument');
|
|
49
45
|
if (mode !== 'server' && mode !== 'static') showHelp('Invalid mode. Should be either `server` or `static`.');
|
package/lib/index.js
CHANGED
package/lib/parseUtils.js
CHANGED
|
@@ -125,8 +125,10 @@ function isChunkIds(node) {
|
|
|
125
125
|
}
|
|
126
126
|
|
|
127
127
|
function isAsyncChunkPushExpression(node) {
|
|
128
|
-
const
|
|
129
|
-
|
|
128
|
+
const {
|
|
129
|
+
callee,
|
|
130
|
+
arguments: args
|
|
131
|
+
} = node;
|
|
130
132
|
return callee.type === 'MemberExpression' && callee.property.name === 'push' && callee.object.type === 'AssignmentExpression' && callee.object.left.object && (callee.object.left.object.name === 'window' || // Webpack 4 uses `this` instead of `window`
|
|
131
133
|
callee.object.left.object.type === 'ThisExpression') && args.length === 1 && args[0].type === 'ArrayExpression' && mayBeAsyncChunkArguments(args[0].elements) && isModulesList(args[0].elements[1]);
|
|
132
134
|
}
|
package/lib/tree/BaseFolder.js
CHANGED
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
3
|
Object.defineProperty(exports, "__esModule", {
|
|
6
4
|
value: true
|
|
7
5
|
});
|
|
@@ -11,6 +9,8 @@ var _lodash = _interopRequireDefault(require("lodash"));
|
|
|
11
9
|
|
|
12
10
|
var _Node = _interopRequireDefault(require("./Node"));
|
|
13
11
|
|
|
12
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
13
|
+
|
|
14
14
|
class BaseFolder extends _Node.default {
|
|
15
15
|
constructor(name, parent) {
|
|
16
16
|
super(name, parent);
|
|
@@ -38,7 +38,9 @@ class BaseFolder extends _Node.default {
|
|
|
38
38
|
}
|
|
39
39
|
|
|
40
40
|
addChildModule(module) {
|
|
41
|
-
const
|
|
41
|
+
const {
|
|
42
|
+
name
|
|
43
|
+
} = module;
|
|
42
44
|
const currentChild = this.children[name]; // For some reason we already have this node in children and it's a folder.
|
|
43
45
|
|
|
44
46
|
if (currentChild && currentChild instanceof BaseFolder) return;
|
|
@@ -1,14 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
3
|
Object.defineProperty(exports, "__esModule", {
|
|
6
4
|
value: true
|
|
7
5
|
});
|
|
8
6
|
exports.default = void 0;
|
|
9
7
|
|
|
10
|
-
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread"));
|
|
11
|
-
|
|
12
8
|
var _lodash = _interopRequireDefault(require("lodash"));
|
|
13
9
|
|
|
14
10
|
var _Module = _interopRequireDefault(require("./Module"));
|
|
@@ -19,6 +15,12 @@ var _ContentFolder = _interopRequireDefault(require("./ContentFolder"));
|
|
|
19
15
|
|
|
20
16
|
var _utils = require("./utils");
|
|
21
17
|
|
|
18
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
19
|
+
|
|
20
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }
|
|
21
|
+
|
|
22
|
+
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
23
|
+
|
|
22
24
|
class ConcatenatedModule extends _Module.default {
|
|
23
25
|
constructor(name, data, parent) {
|
|
24
26
|
super(name, data, parent);
|
|
@@ -38,9 +40,7 @@ class ConcatenatedModule extends _Module.default {
|
|
|
38
40
|
return;
|
|
39
41
|
}
|
|
40
42
|
|
|
41
|
-
const
|
|
42
|
-
folders = _ref[0],
|
|
43
|
-
fileName = _ref[1];
|
|
43
|
+
const [folders, fileName] = [pathParts.slice(0, -1), _lodash.default.last(pathParts)];
|
|
44
44
|
let currentFolder = this;
|
|
45
45
|
|
|
46
46
|
_lodash.default.each(folders, folderName => {
|
|
@@ -77,7 +77,7 @@ class ConcatenatedModule extends _Module.default {
|
|
|
77
77
|
}
|
|
78
78
|
|
|
79
79
|
toChartData() {
|
|
80
|
-
return (
|
|
80
|
+
return _objectSpread({}, super.toChartData(), {
|
|
81
81
|
concatenated: true,
|
|
82
82
|
groups: _lodash.default.invokeMap(this.children, 'toChartData')
|
|
83
83
|
});
|
|
@@ -1,16 +1,18 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
3
|
Object.defineProperty(exports, "__esModule", {
|
|
6
4
|
value: true
|
|
7
5
|
});
|
|
8
6
|
exports.default = void 0;
|
|
9
7
|
|
|
10
|
-
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread"));
|
|
11
|
-
|
|
12
8
|
var _BaseFolder = _interopRequireDefault(require("./BaseFolder"));
|
|
13
9
|
|
|
10
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
11
|
+
|
|
12
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }
|
|
13
|
+
|
|
14
|
+
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
15
|
+
|
|
14
16
|
class ContentFolder extends _BaseFolder.default {
|
|
15
17
|
constructor(name, ownerModule, parent) {
|
|
16
18
|
super(name, parent);
|
|
@@ -34,7 +36,7 @@ class ContentFolder extends _BaseFolder.default {
|
|
|
34
36
|
}
|
|
35
37
|
|
|
36
38
|
toChartData() {
|
|
37
|
-
return (
|
|
39
|
+
return _objectSpread({}, super.toChartData(), {
|
|
38
40
|
parsedSize: this.parsedSize,
|
|
39
41
|
gzipSize: this.gzipSize,
|
|
40
42
|
inaccurateSizes: true
|
|
@@ -1,16 +1,18 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
3
|
Object.defineProperty(exports, "__esModule", {
|
|
6
4
|
value: true
|
|
7
5
|
});
|
|
8
6
|
exports.default = void 0;
|
|
9
7
|
|
|
10
|
-
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread"));
|
|
11
|
-
|
|
12
8
|
var _Module = _interopRequireDefault(require("./Module"));
|
|
13
9
|
|
|
10
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
11
|
+
|
|
12
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }
|
|
13
|
+
|
|
14
|
+
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
15
|
+
|
|
14
16
|
class ContentModule extends _Module.default {
|
|
15
17
|
constructor(name, data, ownerModule, parent) {
|
|
16
18
|
super(name, data, parent);
|
|
@@ -34,7 +36,7 @@ class ContentModule extends _Module.default {
|
|
|
34
36
|
}
|
|
35
37
|
|
|
36
38
|
toChartData() {
|
|
37
|
-
return (
|
|
39
|
+
return _objectSpread({}, super.toChartData(), {
|
|
38
40
|
inaccurateSizes: true
|
|
39
41
|
});
|
|
40
42
|
}
|
package/lib/tree/Folder.js
CHANGED
|
@@ -1,14 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
3
|
Object.defineProperty(exports, "__esModule", {
|
|
6
4
|
value: true
|
|
7
5
|
});
|
|
8
6
|
exports.default = void 0;
|
|
9
7
|
|
|
10
|
-
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread"));
|
|
11
|
-
|
|
12
8
|
var _lodash = _interopRequireDefault(require("lodash"));
|
|
13
9
|
|
|
14
10
|
var _gzipSize = _interopRequireDefault(require("gzip-size"));
|
|
@@ -21,6 +17,12 @@ var _ConcatenatedModule = _interopRequireDefault(require("./ConcatenatedModule")
|
|
|
21
17
|
|
|
22
18
|
var _utils = require("./utils");
|
|
23
19
|
|
|
20
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
21
|
+
|
|
22
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }
|
|
23
|
+
|
|
24
|
+
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
25
|
+
|
|
24
26
|
class Folder extends _BaseFolder.default {
|
|
25
27
|
get parsedSize() {
|
|
26
28
|
return this.src ? this.src.length : 0;
|
|
@@ -41,9 +43,7 @@ class Folder extends _BaseFolder.default {
|
|
|
41
43
|
return;
|
|
42
44
|
}
|
|
43
45
|
|
|
44
|
-
const
|
|
45
|
-
folders = _ref[0],
|
|
46
|
-
fileName = _ref[1];
|
|
46
|
+
const [folders, fileName] = [pathParts.slice(0, -1), _lodash.default.last(pathParts)];
|
|
47
47
|
let currentFolder = this;
|
|
48
48
|
|
|
49
49
|
_lodash.default.each(folders, folderName => {
|
|
@@ -67,7 +67,7 @@ class Folder extends _BaseFolder.default {
|
|
|
67
67
|
}
|
|
68
68
|
|
|
69
69
|
toChartData() {
|
|
70
|
-
return (
|
|
70
|
+
return _objectSpread({}, super.toChartData(), {
|
|
71
71
|
parsedSize: this.parsedSize,
|
|
72
72
|
gzipSize: this.gzipSize
|
|
73
73
|
});
|
package/lib/tree/Module.js
CHANGED
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
3
|
Object.defineProperty(exports, "__esModule", {
|
|
6
4
|
value: true
|
|
7
5
|
});
|
|
@@ -13,6 +11,8 @@ var _gzipSize = _interopRequireDefault(require("gzip-size"));
|
|
|
13
11
|
|
|
14
12
|
var _Node = _interopRequireDefault(require("./Node"));
|
|
15
13
|
|
|
14
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
15
|
+
|
|
16
16
|
class Module extends _Node.default {
|
|
17
17
|
constructor(name, data, parent) {
|
|
18
18
|
super(name, parent);
|
package/lib/tree/utils.js
CHANGED
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
3
|
Object.defineProperty(exports, "__esModule", {
|
|
6
4
|
value: true
|
|
7
5
|
});
|
|
@@ -9,6 +7,8 @@ exports.getModulePathParts = getModulePathParts;
|
|
|
9
7
|
|
|
10
8
|
var _lodash = _interopRequireDefault(require("lodash"));
|
|
11
9
|
|
|
10
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
11
|
+
|
|
12
12
|
const MULTI_MODULE_REGEXP = /^multi /;
|
|
13
13
|
|
|
14
14
|
function getModulePathParts(moduleData) {
|
package/lib/utils.js
CHANGED
package/lib/viewer.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
|
|
4
4
|
|
|
5
|
-
var
|
|
5
|
+
function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
|
|
6
6
|
|
|
7
7
|
const path = require('path');
|
|
8
8
|
|
|
@@ -22,8 +22,9 @@ const opener = require('opener');
|
|
|
22
22
|
|
|
23
23
|
const mkdir = require('mkdirp');
|
|
24
24
|
|
|
25
|
-
const
|
|
26
|
-
|
|
25
|
+
const {
|
|
26
|
+
bold
|
|
27
|
+
} = require('chalk');
|
|
27
28
|
|
|
28
29
|
const Logger = require('./Logger');
|
|
29
30
|
|
|
@@ -42,23 +43,16 @@ function startServer(_x, _x2) {
|
|
|
42
43
|
}
|
|
43
44
|
|
|
44
45
|
function _startServer() {
|
|
45
|
-
_startServer = (
|
|
46
|
-
const
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
_ref2$logger = _ref2.logger,
|
|
56
|
-
logger = _ref2$logger === void 0 ? new Logger() : _ref2$logger,
|
|
57
|
-
_ref2$defaultSizes = _ref2.defaultSizes,
|
|
58
|
-
defaultSizes = _ref2$defaultSizes === void 0 ? 'parsed' : _ref2$defaultSizes,
|
|
59
|
-
_ref2$excludeAssets = _ref2.excludeAssets,
|
|
60
|
-
excludeAssets = _ref2$excludeAssets === void 0 ? null : _ref2$excludeAssets;
|
|
61
|
-
|
|
46
|
+
_startServer = _asyncToGenerator(function* (bundleStats, opts) {
|
|
47
|
+
const {
|
|
48
|
+
port = 8888,
|
|
49
|
+
host = '127.0.0.1',
|
|
50
|
+
openBrowser = true,
|
|
51
|
+
bundleDir = null,
|
|
52
|
+
logger = new Logger(),
|
|
53
|
+
defaultSizes = 'parsed',
|
|
54
|
+
excludeAssets = null
|
|
55
|
+
} = opts || {};
|
|
62
56
|
const analyzerOpts = {
|
|
63
57
|
logger,
|
|
64
58
|
excludeAssets
|
|
@@ -129,20 +123,14 @@ function _startServer() {
|
|
|
129
123
|
}
|
|
130
124
|
|
|
131
125
|
function generateReport(bundleStats, opts) {
|
|
132
|
-
const
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
logger = _ref$logger === void 0 ? new Logger() : _ref$logger,
|
|
141
|
-
_ref$defaultSizes = _ref.defaultSizes,
|
|
142
|
-
defaultSizes = _ref$defaultSizes === void 0 ? 'parsed' : _ref$defaultSizes,
|
|
143
|
-
_ref$excludeAssets = _ref.excludeAssets,
|
|
144
|
-
excludeAssets = _ref$excludeAssets === void 0 ? null : _ref$excludeAssets;
|
|
145
|
-
|
|
126
|
+
const {
|
|
127
|
+
openBrowser = true,
|
|
128
|
+
reportFilename = 'report.html',
|
|
129
|
+
bundleDir = null,
|
|
130
|
+
logger = new Logger(),
|
|
131
|
+
defaultSizes = 'parsed',
|
|
132
|
+
excludeAssets = null
|
|
133
|
+
} = opts || {};
|
|
146
134
|
const chartData = getChartData({
|
|
147
135
|
logger,
|
|
148
136
|
excludeAssets
|
|
@@ -172,7 +160,9 @@ function getAssetContent(filename) {
|
|
|
172
160
|
|
|
173
161
|
function getChartData(analyzerOpts, ...args) {
|
|
174
162
|
let chartData;
|
|
175
|
-
const
|
|
163
|
+
const {
|
|
164
|
+
logger
|
|
165
|
+
} = analyzerOpts;
|
|
176
166
|
|
|
177
167
|
try {
|
|
178
168
|
chartData = analyzer.getViewerData(...args, analyzerOpts);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "webpack-bundle-analyzer",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.2",
|
|
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",
|
|
@@ -33,8 +33,6 @@
|
|
|
33
33
|
"views"
|
|
34
34
|
],
|
|
35
35
|
"dependencies": {
|
|
36
|
-
"@babel/polyfill": "7.0.0",
|
|
37
|
-
"@babel/runtime": "7.0.0",
|
|
38
36
|
"acorn": "^5.7.3",
|
|
39
37
|
"bfj": "^6.1.1",
|
|
40
38
|
"chalk": "^2.4.1",
|
|
@@ -43,10 +41,8 @@
|
|
|
43
41
|
"express": "^4.16.3",
|
|
44
42
|
"filesize": "^3.6.1",
|
|
45
43
|
"gzip-size": "^5.0.0",
|
|
46
|
-
"lodash": "4.17.10",
|
|
44
|
+
"lodash": "^4.17.10",
|
|
47
45
|
"mkdirp": "^0.5.1",
|
|
48
|
-
"mobx": "5.1.0",
|
|
49
|
-
"mobx-preact": "3.0.0",
|
|
50
46
|
"opener": "^1.5.1",
|
|
51
47
|
"ws": "^6.0.0"
|
|
52
48
|
},
|
|
@@ -55,9 +51,11 @@
|
|
|
55
51
|
"@babel/plugin-proposal-class-properties": "7.0.0",
|
|
56
52
|
"@babel/plugin-proposal-decorators": "7.0.0",
|
|
57
53
|
"@babel/plugin-transform-runtime": "7.0.0",
|
|
54
|
+
"@babel/polyfill": "7.0.0",
|
|
58
55
|
"@babel/preset-env": "7.0.0",
|
|
59
56
|
"@babel/preset-react": "7.0.0",
|
|
60
57
|
"@babel/register": "7.0.0",
|
|
58
|
+
"@babel/runtime": "7.0.0",
|
|
61
59
|
"babel-eslint": "9.0.0",
|
|
62
60
|
"babel-loader": "8.0.2",
|
|
63
61
|
"babel-plugin-lodash": "3.3.4",
|
|
@@ -74,6 +72,8 @@
|
|
|
74
72
|
"exports-loader": "0.7.0",
|
|
75
73
|
"gulp": "4.0.0",
|
|
76
74
|
"gulp-babel": "8.0.0",
|
|
75
|
+
"mobx": "5.1.0",
|
|
76
|
+
"mobx-preact": "3.0.0",
|
|
77
77
|
"mocha": "5.2.0",
|
|
78
78
|
"nightmare": "3.0.1",
|
|
79
79
|
"postcss-icss-values": "2.0.1",
|