rollup-plugin-webpack-stats
Version:
Rollup/Vite/Rolldown plugin to generate a stats JSON file with a bundle-stats webpack-compatible structure
33 lines (31 loc) • 1.41 kB
JavaScript
const require_runtime = require('./_virtual/_rolldown/runtime.cjs');
const require_utils = require('./utils.cjs');
const require_transform = require('./transform.cjs');
const require_write = require('./write.cjs');
let rollup_plugin_stats_extract = require("rollup-plugin-stats/extract");
rollup_plugin_stats_extract = require_runtime.__toESM(rollup_plugin_stats_extract);
//#region src/plugin.ts
const PLUGIN_NAME = "webpackStats";
const webpackStats = (options = {}) => ({
name: PLUGIN_NAME,
async generateBundle(outputOptions, bundle) {
const { fileName, excludeAssets, excludeModules, write = require_write.statsWrite, ...transformOptions } = typeof options === "function" ? options(outputOptions) : options;
const stats = require_transform.bundleToWebpackStats((0, rollup_plugin_stats_extract.default)(bundle, {
excludeAssets,
excludeModules,
source: true
}), transformOptions);
const filepath = require_utils.resolveFilepath(fileName, outputOptions.dir);
try {
const res = await write(filepath, stats);
const outputSize = require_utils.getByteSize(res.content);
this.info(`Stats saved to ${res.filepath} (${require_utils.formatFileSize(outputSize)})`);
} catch (error) {
const message = error instanceof Error ? error.message : JSON.stringify(error);
this.warn(message);
}
}
});
//#endregion
exports.webpackStats = webpackStats;
//# sourceMappingURL=plugin.cjs.map