Webpack-configuratiegenerator
Een webpack.config.js uit je hoofd schrijven betekent dat je de exacte vorm van output, de test-regex voor elke loader en de bedrading van de plugins moet onthouden. Deze generator maakt er een kort formulier van: stel je entry-bestand, uitvoermap en build-mode in en vink de onderdelen aan die je nodig hebt: TypeScript, Babel, een CSS-loader, HtmlWebpackPlugin en een dev-server. Hij levert een schone, kant-en-klare webpack 5-configuratie met [contenthash]-bestandsnamen en output.clean al ingesteld.
Zo maak je een webpack-configuratie
-
1
Stel entry en uitvoer in
Typ je entry-bestand (standaard `./src/index.js`) en de uitvoermap (standaard `dist`).
-
2
Kies de mode
Kies `production` of `development`. De waarde komt rechtstreeks in het veld `mode`.
-
3
Zet loaders en plugins aan
Zet naar behoefte TypeScript (`ts-loader`), Babel (`babel-loader`), een CSS-loader (`style-loader` + `css-loader`), `HtmlWebpackPlugin` en een dev-server aan.
-
4
Kopieer de configuratie
De `webpack.config.js` wordt live bijgewerkt. Gebruik de kopieerknop en plak hem in de root van je project.
Standaarduitvoer
Met de standaardwaarden (mode production, TypeScript, Babel, een CSS-loader en HtmlWebpackPlugin) levert de generator:
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' }),
],
};
Wat elke optie schrijft
| Optie | Wat het aan de configuratie toevoegt |
|---|---|
| entry | De waarde van entry, bijv. entry: './src/index.js'. |
| uitvoermap | output.path, opgelost met path.resolve(__dirname, 'dist'). |
| mode | mode: 'production' of mode: 'development'. |
| TypeScript | Een ts-loader-regel voor .ts/.tsx, plus die extensies in resolve. |
| Babel | Een babel-loader-regel voor .js/.jsx. |
| CSS-loader | Een regel die style-loader en css-loader aan elkaar koppelt voor .css. |
| HtmlWebpackPlugin | De require-regel plus new HtmlWebpackPlugin({ template: './src/index.html' }). |
| dev-server | Een devServer-blok dat de uitvoermap serveert op poort 3000 met hot reload. |
Vaste keuzes in de uitvoer
Om de startconfiguratie schoon te houden, worden enkele waarden voor je ingesteld in plaats van als veld getoond:
- Gehashte bestandsnamen.
output.filenameis altijdbundle.[contenthash].js, wat de browsercache ongeldig maakt telkens als het bundle verandert. - Schone uitvoer.
output.clean: trueleegt de uitvoermap bij elke build, de webpack 5-vervanger vanclean-webpack-plugin. - CSS wordt gebundeld, niet geëxtraheerd.
style-loaderinjecteert de stijlen via JavaScript. Voeg zelfMiniCssExtractPlugintoe om in productie een apart.css-bestand te maken. - Basis dev-server. Als hij aanstaat, stelt
devServerstatic,port: 3000enhot: truein. Voeg opties alshistoryApiFallbackofproxyhandmatig toe als je app die nodig heeft.
Verder uitbreiden
Het gegenereerde bestand is een startpunt, geen complete productie-opzet. Gebruikelijke vervolgstappen die je zelf toevoegt: MiniCssExtractPlugin voor geëxtraheerde CSS, sass-loader voor .scss, de asset-modules van webpack 5 voor afbeeldingen en fonts, een devtool-waarde voor source maps en een splitChunks-blok voor code splitting.
Veelgestelde vragen
Voor webpack 5. De uitvoer gebruikt output.clean en [contenthash]-bestandsnamen, de moderne conventies van webpack 5, dus is er geen extra clean-plugin nodig.
Nee, het schrijft altijd een webpack.config.js in JavaScript. De TypeScript-optie voegt een ts-loader-regel toe zodat webpack je .ts/.tsx-broncode compileert; ze verandert niets aan het formaat van het configuratiebestand zelf.
Het gegenereerde devServer-blok gebruikt poort 3000 met hot reload. Wijzig de port-waarde in het gekopieerde bestand als je een andere nodig hebt.
Ja. Elke optie voegt zijn eigen regel toe (ts-loader voor .tsx?, babel-loader voor .jsx?), dus je kunt de een, de ander of beide aanzetten, afhankelijk van hoe je project transpileert.
Gerelateerde tools
Luhn-algoritme-checker
Controleer de creditcardnummer, IMEI, SIN en andere door Luhn beschermden nummers. Geef een resultaat terug (goed of fout) en toon elke stap van het verdubbelen en het berekenen van de controlesom aan.
JSON naar PHP-array
Zet JSON om naar een PHP-array-literal met korte syntaxis, associatieve/geïndexeerde arrays en geneste structuren, klaar om in een .php-bestand te plakken.
ASCII-tabelreferentie
Volledige ASCII-tabel van 0 tot 127 met decimale, hexadecimale, octale en binaire waarden en HTML-numerieke referentienotatie, inclusief control codes zoals NUL, LF en DEL.
Telefoonnummers controleren
Controleer de structuur van telefoonnummers per land en bekijk regio, type en E.164-, internationale, nationale en RFC 3966-notatie.
Sneltoetsenoverzicht
Zoek gedocumenteerde standaardsneltoetsen voor VS Code, Chrome en Bash met GNU Readline op macOS, Windows en Linux.
ASCII naar binair-converter
Converteer elke ASCII-string naar zijn binaire representatie. Elk teken wordt acht bits, gescheiden door spaties, klaar voor protocoltrace of huiswerk.
Tool beschikbaar in andere talen
- Webpack 설정 생성기 [KO]
- Gerador de Configuração Webpack [PT]
- Generador de Configuración de Webpack [ES]
- Webpack設定ジェネレーター [JA]
- Trình tạo cấu hình webpack [VI]
- Générateur de configuration Webpack [FR]
- Webpack-Konfigurationsgenerator [DE]
- ตัวสร้างการตั้งค่า Webpack [TH]
- Webpack-konfigurationsgenerator [SV]
- مولّد إعدادات Webpack [AR]
- Generator Konfigurasi Webpack [ID]
- Generator konfiguracji webpack [PL]
- Generatore di Configurazione Webpack [IT]
- Генератор конфигурации webpack [RU]
- Webpack Yapılandırma Oluşturucu [TR]
- Webpack 配置生成器 [ZH]
- Webpack Config Generator [EN]