Skip to content

Commit

Permalink
Remake PR
Browse files Browse the repository at this point in the history
  • Loading branch information
henry-alakazhang committed Feb 10, 2023
1 parent 3893041 commit e995d16
Show file tree
Hide file tree
Showing 5 changed files with 53 additions and 40 deletions.
3 changes: 3 additions & 0 deletions CHANGELOG.md
Expand Up @@ -12,6 +12,9 @@ _Note: Gaps between patch versions are faulty, broken or test releases._

## UNRELEASED

* **Improvement**
* Support reading large (>500MB) stats.json files ([#423](https://github.com/webpack-contrib/webpack-bundle-analyzer/pull/423) by [@henry-alakazhang](https://github.com/henry-alakazhang))

## 4.7.0

* **New Feature**
Expand Down
6 changes: 6 additions & 0 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions package.json
Expand Up @@ -51,6 +51,7 @@
"@babel/preset-react": "7.13.13",
"@babel/runtime": "7.14.0",
"@carrotsearch/foamtree": "3.5.0",
"@discoveryjs/json-ext": "0.5.7",
"autoprefixer": "10.2.5",
"babel-eslint": "10.1.0",
"babel-loader": "8.2.2",
Expand Down
5 changes: 3 additions & 2 deletions src/analyzer.js
Expand Up @@ -3,6 +3,7 @@ const path = require('path');

const _ = require('lodash');
const gzipSize = require('gzip-size');
const {parseChunked} = require('@discoveryjs/json-ext');

const Logger = require('./Logger');
const Folder = require('./tree/Folder').default;
Expand Down Expand Up @@ -164,8 +165,8 @@ function getViewerData(bundleStats, bundleDir, opts) {
}

function readStatsFromFile(filename) {
return JSON.parse(
fs.readFileSync(filename, 'utf8')
return parseChunked(
fs.createReadStream(filename, {encoding: 'utf8'})
);
}

Expand Down
78 changes: 40 additions & 38 deletions src/bin/analyzer.js
Expand Up @@ -110,44 +110,46 @@ bundleStatsFile = resolve(bundleStatsFile);

if (!bundleDir) bundleDir = dirname(bundleStatsFile);

let bundleStats;
try {
bundleStats = analyzer.readStatsFromFile(bundleStatsFile);
} catch (err) {
logger.error(`Couldn't read webpack bundle stats from "${bundleStatsFile}":\n${err}`);
logger.debug(err.stack);
process.exit(1);
}

if (mode === 'server') {
viewer.startServer(bundleStats, {
openBrowser,
port,
host,
defaultSizes,
reportTitle,
bundleDir,
excludeAssets,
logger: new Logger(logLevel),
analyzerUrl: utils.defaultAnalyzerUrl
});
} else if (mode === 'static') {
viewer.generateReport(bundleStats, {
openBrowser,
reportFilename: resolve(reportFilename || 'report.html'),
reportTitle,
defaultSizes,
bundleDir,
excludeAssets,
logger: new Logger(logLevel)
});
} else if (mode === 'json') {
viewer.generateJSONReport(bundleStats, {
reportFilename: resolve(reportFilename || 'report.json'),
bundleDir,
excludeAssets,
logger: new Logger(logLevel)
});
parseAndAnalyse(bundleStatsFile);

async function parseAndAnalyse(bundleStatsFile) {
try {
const bundleStats = await analyzer.readStatsFromFile(bundleStatsFile);
if (mode === 'server') {
viewer.startServer(bundleStats, {
openBrowser,
port,
host,
defaultSizes,
reportTitle,
bundleDir,
excludeAssets,
logger: new Logger(logLevel),
analyzerUrl: utils.defaultAnalyzerUrl
});
} else if (mode === 'static') {
viewer.generateReport(bundleStats, {
openBrowser,
reportFilename: resolve(reportFilename || 'report.html'),
reportTitle,
defaultSizes,
bundleDir,
excludeAssets,
logger: new Logger(logLevel)
});
} else if (mode === 'json') {
viewer.generateJSONReport(bundleStats, {
reportFilename: resolve(reportFilename || 'report.json'),
bundleDir,
excludeAssets,
logger: new Logger(logLevel)
});
}
} catch (err) {
logger.error(`Couldn't read webpack bundle stats from "${bundleStatsFile}":\n${err}`);
logger.debug(err.stack);
process.exit(1);
}
}

function showHelp(error) {
Expand Down

0 comments on commit e995d16

Please sign in to comment.