Generatore di Configurazione Webpack
Scrivere un webpack.config.js a memoria significa ricordare la forma esatta di output, la regex test di ogni loader e come si collegano i plugin. Questo generatore lo trasforma in un modulo breve: imposta il file di ingresso, la cartella di output e la modalità di build, poi spunta le parti che ti servono: TypeScript, Babel, un loader CSS, HtmlWebpackPlugin e un server di sviluppo. Produce una configurazione webpack 5 pulita e pronta da copiare, con nomi di file [contenthash] e output.clean già presenti.
Come creare una configurazione webpack
-
1
Imposta entry e output
Digita il file di ingresso (predefinito `./src/index.js`) e la cartella di output (predefinita `dist`).
-
2
Scegli la modalità
Seleziona `production` o `development`. Il valore viene scritto direttamente nel campo `mode`.
-
3
Attiva loader e plugin
Attiva secondo le necessità TypeScript (`ts-loader`), Babel (`babel-loader`), un loader CSS (`style-loader` + `css-loader`), `HtmlWebpackPlugin` e un server di sviluppo.
-
4
Copia la configurazione
Il `webpack.config.js` si aggiorna in tempo reale. Usa il pulsante di copia e incollalo nella radice del progetto.
Output predefinito
Con i valori predefiniti (modalità production, TypeScript, Babel, un loader CSS e HtmlWebpackPlugin), il generatore produce:
const path = require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin');
module.exports = {
mode: 'production',
entry: './src/index.js',
output: {
path: path.resolve(__dirname, 'dist'),
filename: 'bundle.[contenthash].js',
clean: true,
},
resolve: { extensions: ['.ts','.tsx','.js'] },
module: {
rules: [
{ test: /\.tsx?$/, use: 'ts-loader', exclude: /node_modules/ },
{ test: /\.jsx?$/, exclude: /node_modules/, use: 'babel-loader' },
{ test: /\.css$/, use: ['style-loader', 'css-loader'] },
],
},
plugins: [
new HtmlWebpackPlugin({ template: './src/index.html' }),
],
};
Cosa scrive ogni opzione
| Opzione | Cosa aggiunge alla configurazione |
|---|---|
| entry | Il valore di entry, ad es. entry: './src/index.js'. |
| cartella di output | output.path, risolto con path.resolve(__dirname, 'dist'). |
| mode | mode: 'production' oppure mode: 'development'. |
| TypeScript | Una regola ts-loader per .ts/.tsx, più quelle estensioni in resolve. |
| Babel | Una regola babel-loader per .js/.jsx. |
| loader CSS | Una regola che concatena style-loader e css-loader per .css. |
| HtmlWebpackPlugin | La riga require più new HtmlWebpackPlugin({ template: './src/index.html' }). |
| server di sviluppo | Un blocco devServer che serve la cartella di output sulla porta 3000 con ricarica a caldo. |
Scelte fisse nell’output
Per mantenere pulita la configurazione iniziale, alcuni valori sono impostati per te invece di essere esposti come campi:
- Nomi di file con hash.
output.filenameè semprebundle.[contenthash].js, il che invalida la cache del browser ogni volta che il bundle cambia. - Output pulito.
output.clean: truesvuota la cartella di output a ogni build, il sostituto di webpack 5 perclean-webpack-plugin. - Il CSS viene incluso nel bundle, non estratto.
style-loaderinietta gli stili tramite JavaScript. Per emettere un file.cssseparato in produzione, aggiungi tu stessoMiniCssExtractPlugin. - Server di sviluppo di base. Quando è attivo,
devServerimpostastatic,port: 3000ehot: true. Aggiungi a mano opzioni comehistoryApiFallbackoproxyse la tua app ne ha bisogno.
Come ampliarlo
Il file generato è un punto di partenza, non una configurazione di produzione completa. Passi successivi comuni che aggiungi a mano: MiniCssExtractPlugin per estrarre il CSS, sass-loader per .scss, i moduli asset di webpack 5 per immagini e font, un valore devtool per i source map e un blocco splitChunks per la suddivisione del codice.
Domande frequenti
Per webpack 5. L’output usa output.clean e nomi di file [contenthash], le convenzioni moderne di webpack 5, quindi non serve alcun plugin di pulizia aggiuntivo.
No, scrive sempre un webpack.config.js in JavaScript. Attivare l’opzione TypeScript aggiunge una regola ts-loader affinché webpack compili il tuo codice .ts/.tsx; non cambia il formato del file di configurazione in sé.
Il blocco devServer generato usa la porta 3000 con ricarica a caldo. Cambia il valore port nel file copiato se te ne serve un’altra.
Sì. Ogni opzione aggiunge la propria regola (ts-loader per .tsx?, babel-loader per .jsx?), quindi puoi attivare l’una, l’altra o entrambe a seconda di come il tuo progetto transpila.
Strumenti correlati
Generatore di lettere casuali
Genera lettere A-Z casuali. Scegli la quantità, usa maiuscole, minuscole o un mix, e applica il risultato a giochi, spunti o attività in classe.
Riferimento Tabella ASCII
Tabella ASCII completa da 0 a 127 con decimale, esadecimale, ottale, binario e riferimento numerico HTML per ogni carattere, inclusi i codici di controllo come NUL, LF e DEL.
Convertitore da Markdown a BBCode
Converti documenti Markdown in BBCode per phpBB, vBulletin e software per forum che accetta solo la formattazione BBCode.
Convertitore da INI a YAML
Converti file di configurazione INI in YAML. Le sezioni diventano mappature, i valori sono preservati come stringhe. Pronto per Helm, Ansible e pipeline CI.
Visualizzatore Markdown
Scrivi Markdown e guarda l'HTML renderizzato aggiornarsi in tempo reale. Sintassi in stile GitHub con tabelle, elenchi di attività, codice racchiuso e autolink.
Generatore di Meta Tag
Crea un frammento completo `<head>` con titolo, descrizione, Open Graph, Twitter Card, tag canonici e robots da un semplice modulo.
Strumento disponibile in altre lingue
- Webpack-Konfigurationsgenerator [DE]
- Gerador de Configuração Webpack [PT]
- Trình tạo cấu hình webpack [VI]
- Webpack-konfigurationsgenerator [SV]
- ตัวสร้างการตั้งค่า Webpack [TH]
- Generator Konfigurasi Webpack [ID]
- Webpack 설정 생성기 [KO]
- Generador de Configuración de Webpack [ES]
- Webpack設定ジェネレーター [JA]
- مولّد إعدادات Webpack [AR]
- Générateur de configuration Webpack [FR]
- Webpack-configuratiegenerator [NL]
- Generator konfiguracji webpack [PL]
- Генератор конфигурации webpack [RU]
- Webpack Yapılandırma Oluşturucu [TR]
- Webpack 配置生成器 [ZH]
- Webpack Config Generator [EN]