Trình tạo cấu hình webpack
Viết webpack.config.js từ trí nhớ nghĩa là phải nhớ hình dạng chính xác của output, biểu thức test cho từng loader và cách các plugin nối với nhau. Công cụ này biến việc đó thành một biểu mẫu ngắn: đặt tệp đầu vào, thư mục output và chế độ build, rồi tích các phần bạn cần, gồm TypeScript, Babel, một CSS loader, HtmlWebpackPlugin và một dev server. Nó viết ra một cấu hình webpack 5 gọn gàng, sẵn sàng để sao chép, với tên tệp [contenthash] và output.clean đã có sẵn.
Cách tạo cấu hình webpack
-
1
Đặt entry và output
Nhập tệp đầu vào (mặc định `./src/index.js`) và thư mục output (mặc định `dist`).
-
2
Chọn mode
Chọn `production` hoặc `development`. Giá trị được ghi thẳng vào trường `mode`.
-
3
Bật loader và plugin
Bật theo nhu cầu: TypeScript (`ts-loader`), Babel (`babel-loader`), một CSS loader (`style-loader` + `css-loader`), `HtmlWebpackPlugin` và một dev server.
-
4
Sao chép cấu hình
`webpack.config.js` cập nhật theo thời gian thực. Dùng nút sao chép và dán vào thư mục gốc của dự án.
Kết quả mặc định
Với các giá trị mặc định (chế độ production, TypeScript, Babel, một CSS loader và HtmlWebpackPlugin), công cụ tạo ra:
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' }),
],
};
Mỗi tùy chọn viết gì
| Tùy chọn | Nó thêm gì vào cấu hình |
|---|---|
| entry | Giá trị entry, ví dụ entry: './src/index.js'. |
| thư mục output | output.path, được giải bằng path.resolve(__dirname, 'dist'). |
| mode | mode: 'production' hoặc mode: 'development'. |
| TypeScript | Một quy tắc ts-loader cho .ts/.tsx, cùng các đuôi đó trong resolve. |
| Babel | Một quy tắc babel-loader cho .js/.jsx. |
| CSS loader | Một quy tắc nối style-loader và css-loader cho .css. |
| HtmlWebpackPlugin | Dòng require cùng new HtmlWebpackPlugin({ template: './src/index.html' }). |
| dev server | Một khối devServer phục vụ thư mục output trên cổng 3000 với hot reload. |
Các lựa chọn cố định trong kết quả
Để giữ cấu hình khởi đầu gọn gàng, một vài giá trị được đặt sẵn cho bạn thay vì hiện thành trường:
- Tên tệp có hash.
output.filenameluôn làbundle.[contenthash].js, giúp xóa cache trình duyệt mỗi khi bundle thay đổi. - Output sạch.
output.clean: truedọn sạch thư mục output ở mỗi lần build, phần thay thế choclean-webpack-plugintrong webpack 5. - CSS được gộp vào bundle, không tách riêng.
style-loaderchèn kiểu qua JavaScript. Để xuất một tệp.cssriêng cho production, hãy tự thêmMiniCssExtractPlugin. - Cơ bản của dev server. Khi bật,
devServerđặtstatic,port: 3000vàhot: true. Thêm các tùy chọn nhưhistoryApiFallbackhoặcproxythủ công nếu ứng dụng cần.
Mở rộng thêm
Tệp được tạo ra là điểm khởi đầu, không phải một cấu hình production hoàn chỉnh. Các bước tiếp theo thường gặp mà bạn tự thêm: MiniCssExtractPlugin để tách CSS, sass-loader cho .scss, các mô-đun asset của webpack 5 cho ảnh và phông chữ, một giá trị devtool cho source map, và một khối splitChunks để chia tách mã.
Câu hỏi thường gặp
Cho webpack 5. Kết quả dùng output.clean và tên tệp [contenthash], là các quy ước hiện đại của webpack 5, nên không cần plugin dọn dẹp nào thêm.
Không, nó luôn viết một webpack.config.js bằng JavaScript. Bật tùy chọn TypeScript sẽ thêm một quy tắc ts-loader để webpack biên dịch mã nguồn .ts/.tsx của bạn; nó không thay đổi định dạng của chính tệp cấu hình.
Khối devServer được tạo dùng cổng 3000 với hot reload. Đổi giá trị port trong tệp đã sao chép nếu bạn cần cổng khác.
Có. Mỗi tùy chọn thêm quy tắc riêng (ts-loader cho .tsx?, babel-loader cho .jsx?), nên bạn có thể bật cái này, cái kia hoặc cả hai tùy theo cách dự án của bạn biên dịch chéo.
Công cụ liên quan
Bảng tham chiếu ASCII
Bảng ASCII đầy đủ từ 0 đến 127 với giá trị thập phân, thập lục phân, bát phân, nhị phân và ký hiệu tham chiếu ký tự số HTML, gồm NUL, LF và DEL.
Tham chiếu ký tự HTML
Danh sách có thể tìm kiếm các thực thể HTML, mã tên và mã số tương ứng của chúng, cùng chức năng sao chép chỉ với một cú nhấp cho các ký tự đặc biệt và biểu tượng.
Bảng tham khảo phím tắt
Tìm phím tắt mặc định theo tài liệu của VS Code, Chrome và Bash dùng GNU Readline trên macOS, Windows và Linux.
Trình giải mã mã JavaScript (JavaScript Deobfuscator)
Giải mã mã JavaScript đã được rút gọn hoặc nén bằng cách đổi tên biến, giải mã chuỗi và mảng, đảo ngược cấu trúc dòng điều khiển và làm đẹp mã.
Chuyển đổi từ RGB sang CMYK
Chuyển màu RGB thành phần trăm mực CMYK bằng công thức tiêu chuẩn. Xem trước tức thì và các giá trị C/M/Y/K. Đây là phép xấp xỉ toán học, không phải chuyển đổi có quản lý màu.
Trình làm rối mã JavaScript
Làm rối mã JavaScript bằng mã hóa mảng chuỗi, đổi tên biến, làm phẳng luồng điều khiển và chèn mã chết để bảo vệ front-end.
Công cụ này có phiên bản bằng các ngôn ngữ khác
- Webpack設定ジェネレーター [JA]
- Generator konfiguracji webpack [PL]
- ตัวสร้างการตั้งค่า Webpack [TH]
- Webpack-configuratiegenerator [NL]
- مولّد إعدادات Webpack [AR]
- Webpack 설정 생성기 [KO]
- Générateur de configuration Webpack [FR]
- Webpack-Konfigurationsgenerator [DE]
- Generator Konfigurasi Webpack [ID]
- Gerador de Configuração Webpack [PT]
- Generador de Configuración de Webpack [ES]
- Webpack-konfigurationsgenerator [SV]
- Webpack Config Generator [EN]
- Generatore di Configurazione Webpack [IT]
- Генератор конфигурации webpack [RU]
- Webpack Yapılandırma Oluşturucu [TR]
- Webpack 配置生成器 [ZH]