Vai al contenuto
100% locale

Analizzatore statistiche webpack

Scopri quali package e moduli occupano più spazio nel tuo build webpack.

Ingresso

Analizzatore statistiche webpack

Genera un stats.json da webpack (`webpack --json > stats.json`, oppure con `stats: { modules: true }` nella tua config) e incollalo qui per vedere esattamente quali package e moduli stanno gonfiando il tuo build. Questo è il modo più veloce per rispondere a "perché il mio build è così grande" senza installare un plugin bundle-analyzer o ricompilare con flag speciali — il report legge il JSON che hai già.

Raggruppare il report per package node_modules per vedere il costo totale di una dipendenza, per cartella per vedere quale parte del tuo codice sorgente è più pesante, o lascialo non raggruppato per ispezionare i moduli individuali uno per uno. L'opzione "righe da visualizzare" limita un report lungo ai maggiori offensori; la percentuale del totale mette la dimensione di ogni riga in contesto; e se il tuo stats.json contiene un campo di dimensione compressa per modulo (gzipSize o sizeGzip), attivando la colonna vengono mostrati entrambi i numeri fianco a fianco. Il filtraggio per entry point o nome di chunk limita tutto a un solo bundle, che è utile quando un'app ha più di un file di output.

Lo strumento contrassegna anche package che compaiono in più percorsi di installazione node_modules — un segno comune che due dipendenze richiedono versioni incompatibili della stessa libreria e webpack finisce per spedire entrambe le copie. Queste righe sono contrassegnate nell'output per essere facili da individuare anche in un report lungo. Scegli formato tabella per un report leggibile o CSV per incollare in un foglio di calcolo quando stai tracciando la dimensione del bundle nel tempo.

Tutto viene eseguito nel tuo browser: il stats.json viene analizzato localmente e non viene mai caricato da nessuna parte, quindi è sicuro da usare con una base di codice proprietaria. Copia il risultato, scaricalo come file .txt, o invialo direttamente all'input di un altro strumento per continuare.

FAQ

Come genero un stats.json?
Esegui il tuo build webpack con `webpack --json > stats.json`, oppure aggiungi `stats: { modules: true }` alla tua config webpack perché il compilatore stampi i dati dei moduli. Lo strumento ha bisogno di un array "modules" di livello superiore per funzionare.
Cosa mostra il raggruppamento per package che il raggruppamento per cartella non mostra?
Il raggruppamento per package comprime tutti i file sotto node_modules/react (ad esempio) in una riga, quindi puoi vedere l'impronta totale di una dipendenza. Il raggruppamento per cartella riporta i tuoi stessi directory di codice sorgente, che è più utile per trovare una feature sovradimensionata nel tuo codice.
Perché avvisa sui package "duplicati"?
Quando due dipendenze richiedono ciascuna una versione diversa della stessa libreria, npm o yarn possono annidare una seconda copia in node_modules anziché deduplicarla. Questo strumento rileva un nome di package che appare in più di un percorso di installazione e lo contrassegna, poiché rimuovere il duplicato è spesso un modo facile per ridurre la dimensione del bundle.
Mostra dimensioni gzip reali se il mio stats.json non le include?
No. La dimensione compressa viene mostrata solo quando il tuo stats.json contiene già un campo gzipSize o sizeGzip per modulo — lo strumento non comprime mai niente di per sé, poiché ciò significherebbe rieseguire una fase di build. Senza quel campo, la colonna mostra un trattino.
Il mio stats.json viene caricato da qualche parte?
No. L'analisi avviene interamente nel tuo browser — il file non abbandona mai il tuo dispositivo.