Generator Konfigurasi Webpack
Menulis webpack.config.js dari ingatan berarti mengingat bentuk persis output, regex test untuk tiap loader, dan cara plugin saling terhubung. Generator ini mengubahnya menjadi formulir singkat: atur file entry, folder output, dan mode build, lalu centang bagian yang Anda perlukan: TypeScript, Babel, loader CSS, HtmlWebpackPlugin, dan dev server. Hasilnya adalah konfigurasi webpack 5 yang bersih dan siap disalin, dengan nama file [contenthash] serta output.clean yang sudah ada.
Cara membuat konfigurasi webpack
-
1
Atur entry dan output
Ketik file entry Anda (default `./src/index.js`) dan folder output (default `dist`).
-
2
Pilih mode
Pilih `production` atau `development`. Nilainya ditulis langsung ke bidang `mode`.
-
3
Aktifkan loader dan plugin
Aktifkan sesuai kebutuhan: TypeScript (`ts-loader`), Babel (`babel-loader`), loader CSS (`style-loader` + `css-loader`), `HtmlWebpackPlugin`, dan dev server.
-
4
Salin konfigurasinya
`webpack.config.js` diperbarui secara langsung. Gunakan tombol salin dan tempel ke root proyek Anda.
Keluaran default
Dengan nilai default (mode production, TypeScript, Babel, loader CSS, dan HtmlWebpackPlugin), generator menghasilkan:
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' }),
],
};
Apa yang ditulis setiap opsi
| Opsi | Yang ditambahkan ke konfigurasi |
|---|---|
| entry | Nilai entry, mis. entry: './src/index.js'. |
| folder output | output.path, diselesaikan dengan path.resolve(__dirname, 'dist'). |
| mode | mode: 'production' atau mode: 'development'. |
| TypeScript | Aturan ts-loader untuk .ts/.tsx, plus ekstensi itu di resolve. |
| Babel | Aturan babel-loader untuk .js/.jsx. |
| loader CSS | Aturan yang merangkai style-loader dan css-loader untuk .css. |
| HtmlWebpackPlugin | Baris require plus new HtmlWebpackPlugin({ template: './src/index.html' }). |
| dev server | Blok devServer yang menyajikan folder output pada port 3000 dengan hot reload. |
Pilihan yang sudah ditetapkan pada keluaran
Agar konfigurasi awal tetap ringkas, beberapa nilai ditetapkan untuk Anda alih-alih ditampilkan sebagai bidang:
- Nama file ber-hash.
output.filenameselalubundle.[contenthash].js, yang membatalkan cache browser setiap kali bundle berubah. - Output bersih.
output.clean: truemengosongkan folder output pada setiap build, pengganticlean-webpack-plugindi webpack 5. - CSS di-bundle, bukan diekstrak.
style-loadermenyisipkan gaya melalui JavaScript. Untuk menghasilkan file.cssterpisah di produksi, tambahkan sendiriMiniCssExtractPlugin. - Dasar dev server. Saat diaktifkan,
devServermengaturstatic,port: 3000, danhot: true. Tambahkan opsi sepertihistoryApiFallbackatauproxysecara manual jika aplikasi Anda membutuhkannya.
Cara memperluasnya
File yang dihasilkan adalah titik awal, bukan setup produksi lengkap. Langkah lanjutan yang umum Anda tambahkan sendiri: MiniCssExtractPlugin untuk mengekstrak CSS, sass-loader untuk .scss, modul asset webpack 5 untuk gambar dan font, nilai devtool untuk source map, dan blok splitChunks untuk code splitting.
Pertanyaan yang Sering Diajukan
Untuk webpack 5. Keluarannya memakai output.clean dan nama file [contenthash], konvensi modern webpack 5, sehingga tidak perlu plugin pembersih tambahan.
Tidak, selalu menulis webpack.config.js dalam JavaScript. Mengaktifkan opsi TypeScript menambahkan aturan ts-loader agar webpack mengompilasi sumber .ts/.tsx Anda; itu tidak mengubah format file konfigurasi itu sendiri.
Blok devServer yang dihasilkan memakai port 3000 dengan hot reload. Ubah nilai port di file yang disalin jika Anda perlu port lain.
Bisa. Setiap opsi menambahkan aturannya sendiri (ts-loader untuk .tsx?, babel-loader untuk .jsx?), jadi Anda bisa mengaktifkan salah satu, yang lain, atau keduanya tergantung cara proyek Anda melakukan transpilasi.
Alat Terkait
Referensi Tabel ASCII
Tabel ASCII lengkap dari 0 sampai 127 dengan desimal, heksadesimal, oktal, biner, dan referensi karakter numerik HTML untuk setiap karakter, termasuk kode kontrol seperti NUL, LF, dan DEL.
Referensi Karakter HTML
Daftar entitas HTML yang dapat dicari, beserta kode bernama dan kode numeriknya, serta fitur salin dengan satu klik untuk karakter khusus dan simbol.
Referensi pintasan papan ketik
Cari pintasan bawaan terdokumentasi untuk VS Code, Chrome, dan Bash dengan GNU Readline di macOS, Windows, dan Linux.
JSON ke YAML
Konversi JSON ke YAML dengan penjelajaran yang tepat, penutupan string yang aman, skalar blok berbaris ganda, serta kunci yang tersortir untuk konfigurasi yang lebih rapi.
Decoder JWT
Dekode header dan payload JWT, tampilkan klaim beserta pemeriksaan masa kedaluwarsa dan algoritma tanda tangan, lalu verifikasi menggunakan rahasia bersama atau kunci publik.
Konverter Ukuran File
Konversi antara byte, KB, MB, GB, TB, dan satuan biner IEC (KiB, MiB, GiB, TiB) dengan kombinasi desimal dan biner apa pun yang Anda inginkan.
Alat ini tersedia dalam bahasa lain
- Generator konfiguracji webpack [PL]
- Générateur de configuration Webpack [FR]
- Webpack設定ジェネレーター [JA]
- Webpack-konfigurationsgenerator [SV]
- Webpack-Konfigurationsgenerator [DE]
- Trình tạo cấu hình webpack [VI]
- مولّد إعدادات Webpack [AR]
- Generador de Configuración de Webpack [ES]
- Webpack 설정 생성기 [KO]
- ตัวสร้างการตั้งค่า Webpack [TH]
- Webpack-configuratiegenerator [NL]
- Gerador de Configuração Webpack [PT]
- Webpack Config Generator [EN]
- Generatore di Configurazione Webpack [IT]
- Генератор конфигурации webpack [RU]
- Webpack Yapılandırma Oluşturucu [TR]
- Webpack 配置生成器 [ZH]