Necesito obtener el tamaño del archivo del paquete como salida de comando o escribirlo en un archivo.
He considerado el webpack-bundle-analyzer
, pero el comando y la salida del archivo JSON parecen estar haciendo tanto que es irrelevante para mi caso de uso.
También he considerado el paquete bundlesize
, pero en su mayoría hace una verificación de comparación e informa el estado de falla o éxito como salida del comando.
Si alguien tiene alguna idea sobre qué herramientas, comandos o indicadores relevantes pueden ayudar a lograr esto. Será muy apreciado.
Salud
Si buscas algo muy específico. Puede intentar crear su propio código de complemento para extraer lo que necesita.
class PluginGetFileSize { private file: string; constructor(file: string) { // receive file to get size this.file = file; } apply(compiler: any) { compiler.hooks.done.tap( 'Get File Size', (stats: any) => { // Get output file const file = stats.compilation.assetsInfo.get(this.file); // Verify if file exists if (!file) return console.log('File not exists'); // Get file size const fileSizeInBytes = file.size; // only used to convert const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB']; // Get size type const sizeType = parseInt(Math.floor(Math.log(fileSizeInBytes) / Math.log(1024)).toString()); // Get size of file using size type const size = Math.round(fileSizeInBytes / Math.pow(1024, sizeType)); // Here you can log, create a file or anything else console.log(`${this.file} has ${size} ${sizes[sizeType]}`); } ); } }
Para este ejemplo simple, solo necesito pasar una ruta de archivo para usar el complemento , pero si lo necesita, puede pasar más archivos aquí.
module.exports = { //... plugins: [ new PluginGetFileSize('YOUR-OUTPUT-FILE.js'), ], };
Creo que debe haber algunos paquetes con funciones similares como:
Además, consulte la sección Análisis de paquetes de documentos oficiales del paquete web. Especialmente si usa webpack 5, ya que algunas herramientas comunes aún no lo admiten.
bundle-stats es una gran herramienta.