Webpack-konfigurationsgenerator
Att skriva en webpack.config.js ur minnet innebär att komma ihåg den exakta formen på output, test-regexen för varje loader och hur pluginerna kopplas ihop. Den här generatorn gör det till ett kort formulär: ange din entry-fil, output-mapp och build-mode och bocka i de delar du behöver: TypeScript, Babel, en CSS-loader, HtmlWebpackPlugin och en dev-server. Den skriver en ren, kopieringsklar webpack 5-konfiguration med [contenthash]-filnamn och output.clean redan på plats.
Så skapar du en webpack-konfiguration
-
1
Ange entry och output
Skriv din entry-fil (standard `./src/index.js`) och output-mappen (standard `dist`).
-
2
Välj mode
Välj `production` eller `development`. Värdet skrivs rakt in i fältet `mode`.
-
3
Slå på loaders och plugins
Slå på efter behov TypeScript (`ts-loader`), Babel (`babel-loader`), en CSS-loader (`style-loader` + `css-loader`), `HtmlWebpackPlugin` och en dev-server.
-
4
Kopiera konfigurationen
`webpack.config.js` uppdateras live. Använd kopieringsknappen och klistra in den i projektets rot.
Standardutdata
Med standardvärdena (mode production, TypeScript, Babel, en CSS-loader och HtmlWebpackPlugin) skapar generatorn:
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' }),
],
};
Vad varje alternativ skriver
| Alternativ | Vad det lägger till i konfigurationen |
|---|---|
| entry | Värdet för entry, t.ex. entry: './src/index.js'. |
| output-mapp | output.path, uppslaget med path.resolve(__dirname, 'dist'). |
| mode | mode: 'production' eller mode: 'development'. |
| TypeScript | En ts-loader-regel för .ts/.tsx, plus de filändelserna i resolve. |
| Babel | En babel-loader-regel för .js/.jsx. |
| CSS-loader | En regel som kedjar style-loader och css-loader för .css. |
| HtmlWebpackPlugin | require-raden plus new HtmlWebpackPlugin({ template: './src/index.html' }). |
| dev-server | Ett devServer-block som serverar output-mappen på port 3000 med hot reload. |
Fasta val i utdatan
För att hålla startkonfigurationen ren är några värden inställda åt dig i stället för att visas som fält:
- Hashade filnamn.
output.filenameär alltidbundle.[contenthash].js, vilket tömmer webbläsarens cache varje gång bundlen ändras. - Ren output.
output.clean: truetömmer output-mappen vid varje bygge, webpack 5:s ersättning förclean-webpack-plugin. - CSS bundlas, extraheras inte.
style-loaderinjicerar stilarna via JavaScript. Lägg tillMiniCssExtractPluginsjälv för att skapa en separat.css-fil i produktion. - Grunderna i dev-servern. När den är på sätter
devServerstatic,port: 3000ochhot: true. Lägg till alternativ somhistoryApiFallbackellerproxyför hand om din app behöver dem.
Så bygger du ut den
Den genererade filen är en utgångspunkt, inte en komplett produktionsuppsättning. Vanliga nästa steg som du lägger till för hand: MiniCssExtractPlugin för extraherad CSS, sass-loader för .scss, webpack 5:s asset-moduler för bilder och typsnitt, ett devtool-värde för source maps och ett splitChunks-block för koddelning.
Vanliga frågor
För webpack 5. Utdatan använder output.clean och [contenthash]-filnamn, de moderna webpack 5-konventionerna, så ingen extra clean-plugin behövs.
Nej, den skriver alltid en webpack.config.js i JavaScript. TypeScript-alternativet lägger till en ts-loader-regel så att webpack kan kompilera din .ts/.tsx-källkod; det ändrar inte formatet på själva konfigurationsfilen.
Det genererade devServer-blocket använder port 3000 med hot reload. Ändra värdet för port i den kopierade filen om du behöver en annan.
Ja. Varje alternativ lägger till sin egen regel (ts-loader för .tsx?, babel-loader för .jsx?), så du kan slå på det ena, det andra eller båda beroende på hur ditt projekt transpilerar.
Relaterade verktyg
ASCII-tabellreferens
Full ASCII-tabell från 0 till 127 med decimal-, hex-, oktal- och binärvärden samt notation för numeriska HTML-referenser, inklusive NUL, LF och DEL.
HTML-teckenreferens
En sökbar lista över HTML-entiteter med deras namngivna och numeriska koder samt kopiering med ett klick för specialtecken och symboler.
CSS-pilgnerator
Skapa lokalt en CSS-pil med riktning, färg, storlek och ramens tjocklek och kopiera sedan regeln.
Generator för platshållarbilder
Skapa en bild på 1–4000 px med egna färger och text, ladda ned PNG eller kopiera webbadress och HTML.
Referens för kortkommandon
Sök dokumenterade standardkommandon för VS Code, Chrome och Bash med GNU Readline i macOS, Windows och Linux.
Markdown-förhandsvisare
Skriv Markdown och se den renderade HTML:en uppdateras live. GitHub-flavored syntax med tabeller, uppgiftslistor, inramad kod och autolänkar.
Verktyget finns på andra språk
- Webpack-Konfigurationsgenerator [DE]
- Gerador de Configuração Webpack [PT]
- Generador de Configuración de Webpack [ES]
- Webpack設定ジェネレーター [JA]
- Webpack-configuratiegenerator [NL]
- Trình tạo cấu hình webpack [VI]
- ตัวสร้างการตั้งค่า Webpack [TH]
- Generator Konfigurasi Webpack [ID]
- Webpack 설정 생성기 [KO]
- مولّد إعدادات Webpack [AR]
- Générateur de configuration Webpack [FR]
- Generator konfiguracji webpack [PL]
- Generatore di Configurazione Webpack [IT]
- Генератор конфигурации webpack [RU]
- Webpack Yapılandırma Oluşturucu [TR]
- Webpack 配置生成器 [ZH]
- Webpack Config Generator [EN]