Weigh current module:
npx webpack-size
Weigh the size of a specific module entry:
npx webpack-size foo.js
node_modules | |
package-lock.json | |
readme.md |
{ | |
"name": "webpack-size", | |
"version": "0.1.0", | |
"main": "./webpack-size.js", | |
"bin": "./webpack-size.js", | |
"scripts": { | |
"prepare": "cp *webpack-size.md readme.md" | |
}, | |
"repository": "gist:59ac02a289abb78d3c186d7c9b9219ea", | |
"dependencies": { | |
"rollup": "^1", | |
"rollup-plugin-node-resolve": "^4", | |
"rollup-plugin-commonjs": "^9", | |
"rollup-plugin-terser": "^4", | |
"gzip-size": "^5" | |
} | |
} |
#! /usr/bin/env node | |
var file = process.argv[2]; | |
if (!file) { | |
var pkg = require(require('path').join(process.cwd(), 'package.json')); | |
file = pkg.module || pkg.browser || pkg.main; | |
} | |
require('rollup').rollup({ | |
input: file, | |
plugins: [ | |
require('rollup-plugin-node-resolve')({ | |
mainFields: ['syntax.esmodules', 'module', 'main'] | |
}), | |
require('rollup-plugin-commonjs')(), | |
require('rollup-plugin-terser').terser({ | |
sourcemap: false, | |
compress: true, | |
mangle: true | |
}) | |
] | |
}) | |
.then(function(bundle) { | |
return bundle.generate({ format: 'cjs' }); | |
}) | |
.then(function(result) { | |
console.log(file + ' weighs ' + require('gzip-size').sync(result.output[0].code) + ' (gzipped) when webpacked.'); | |
}) | |
.catch(function(err) { | |
console.error('Failed to process ' + file + ': ' + (err && err.message || err)); | |
}); |