ตัวสร้างการตั้งค่า Webpack
การเขียน webpack.config.js จากความจำหมายถึงต้องจำรูปแบบที่แน่นอนของ output, regex test ของแต่ละ loader และวิธีเชื่อมต่อ plugin เครื่องมือนี้เปลี่ยนสิ่งนั้นให้เป็นแบบฟอร์มสั้นๆ ตั้งค่าไฟล์ entry, โฟลเดอร์ output และโหมด build จากนั้นเลือกส่วนที่คุณต้องการ ได้แก่ TypeScript, Babel, CSS loader, HtmlWebpackPlugin และ dev server แล้วมันจะเขียนการตั้งค่า webpack 5 ที่สะอาดและพร้อมคัดลอก โดยมีชื่อไฟล์ [contenthash] และ output.clean ใส่ไว้ให้แล้ว
วิธีสร้างการตั้งค่า webpack
-
1
ตั้งค่า entry และ output
พิมพ์ไฟล์ entry ของคุณ (ค่าเริ่มต้น `./src/index.js`) และโฟลเดอร์ output (ค่าเริ่มต้น `dist`)
-
2
เลือกโหมด
เลือก `production` หรือ `development` ค่าจะถูกเขียนลงในฟิลด์ `mode` โดยตรง
-
3
เปิด loader และ plugin
เปิดตามที่ต้องการ ได้แก่ TypeScript (`ts-loader`), Babel (`babel-loader`), CSS loader (`style-loader` + `css-loader`), `HtmlWebpackPlugin` และ dev server
-
4
คัดลอกการตั้งค่า
`webpack.config.js` อัปเดตแบบเรียลไทม์ ใช้ปุ่มคัดลอกแล้ววางลงในรากของโปรเจกต์
ผลลัพธ์เริ่มต้น
ด้วยค่าเริ่มต้น (โหมด production, TypeScript, Babel, CSS loader และ HtmlWebpackPlugin) เครื่องมือจะสร้าง:
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' }),
],
};
แต่ละตัวเลือกเขียนอะไร
| ตัวเลือก | สิ่งที่เพิ่มลงในการตั้งค่า |
|---|---|
| entry | ค่า entry เช่น entry: './src/index.js' |
| โฟลเดอร์ output | output.path แก้ค่าด้วย path.resolve(__dirname, 'dist') |
| mode | mode: 'production' หรือ mode: 'development' |
| TypeScript | กฎ ts-loader สำหรับ .ts/.tsx และเพิ่มนามสกุลเหล่านั้นใน resolve |
| Babel | กฎ babel-loader สำหรับ .js/.jsx |
| CSS loader | กฎที่ต่อ style-loader และ css-loader สำหรับ .css |
| HtmlWebpackPlugin | บรรทัด require และ new HtmlWebpackPlugin({ template: './src/index.html' }) |
| dev server | บล็อก devServer ที่ให้บริการโฟลเดอร์ output บนพอร์ต 3000 พร้อม hot reload |
ตัวเลือกที่กำหนดตายตัวในผลลัพธ์
เพื่อให้การตั้งค่าเริ่มต้นกระชับ ค่าบางอย่างถูกตั้งไว้ให้แทนที่จะแสดงเป็นฟิลด์:
- ชื่อไฟล์แบบ hash
output.filenameเป็นbundle.[contenthash].jsเสมอ ซึ่งล้างแคชของเบราว์เซอร์ทุกครั้งที่ bundle เปลี่ยน - output ที่สะอาด
output.clean: trueจะล้างโฟลเดอร์ output ทุกครั้งที่ build ซึ่งเป็นตัวแทนของclean-webpack-pluginใน webpack 5 - CSS ถูกรวมเข้าไปใน bundle ไม่ได้ถูกแยกออกมา
style-loaderแทรกสไตล์ผ่าน JavaScript หากต้องการสร้างไฟล์.cssแยกสำหรับ production ให้เพิ่มMiniCssExtractPluginเอง - พื้นฐานของ dev server เมื่อเปิดใช้งาน
devServerจะตั้งค่าstatic,port: 3000และhot: trueเพิ่มตัวเลือกอย่างhistoryApiFallbackหรือproxyด้วยตนเองหากแอปของคุณต้องการ
วิธีขยายเพิ่มเติม
ไฟล์ที่สร้างขึ้นเป็นจุดเริ่มต้น ไม่ใช่การตั้งค่า production ที่สมบูรณ์ ขั้นตอนถัดไปที่พบบ่อยซึ่งคุณเพิ่มเอง ได้แก่ MiniCssExtractPlugin สำหรับแยก CSS, sass-loader สำหรับ .scss, โมดูล asset ของ webpack 5 สำหรับรูปภาพและฟอนต์, ค่า devtool สำหรับ source map และบล็อก splitChunks สำหรับการแบ่งโค้ด
คำถามที่พบบ่อย
สำหรับ webpack 5 ผลลัพธ์ใช้ output.clean และชื่อไฟล์ [contenthash] ซึ่งเป็นแนวทางสมัยใหม่ของ webpack 5 จึงไม่จำเป็นต้องมี plugin สำหรับล้างเพิ่ม
ไม่ มันเขียนเป็น webpack.config.js แบบ JavaScript เสมอ การเปิด TypeScript จะเพิ่มกฎ ts-loader เพื่อให้ webpack คอมไพล์ซอร์ส .ts/.tsx ของคุณ ไม่ได้เปลี่ยนรูปแบบของไฟล์การตั้งค่าเอง
บล็อก devServer ที่สร้างขึ้นใช้พอร์ต 3000 พร้อม hot reload เปลี่ยนค่า port ในไฟล์ที่คัดลอกหากต้องการพอร์ตอื่น
ได้ แต่ละตัวเลือกเพิ่มกฎของตัวเอง (ts-loader สำหรับ .tsx?, babel-loader สำหรับ .jsx?) จึงเปิดอย่างใดอย่างหนึ่งหรือทั้งสองอย่างได้ ขึ้นอยู่กับวิธีที่โปรเจกต์ของคุณทำ transpile
เครื่องมือที่เกี่ยวข้อง
ตารางอ้างอิง ASCII
ตาราง ASCII ครบตั้งแต่ 0 ถึง 127 พร้อมค่าเลขฐานสิบ ฐานสิบหก ฐานแปด ฐานสอง และรูปแบบการอ้างอิงอักขระแบบตัวเลขของ HTML รวม NUL, LF และ DEL
อ้างอิงตัวอักษร HTML
รายการที่สามารถค้นหาได้ขององค์ประกอบ HTML พร้อมรหัสชื่อและรหัสตัวเลข รวมถึงฟังก์ชันสำเนาด้วยคลิกเดียวสำหรับตัวอักษรพิเศษและสัญลักษณ์ต่างๆ
ตารางอ้างอิงแป้นพิมพ์ลัด
ค้นหาแป้นพิมพ์ลัดเริ่มต้นตามเอกสารของ VS Code, Chrome และ Bash ที่ใช้ GNU Readline บน macOS, Windows และ Linux
เครื่องสุ่มที่อยู่
สร้างระเบียนคล้ายที่อยู่ 1–20 รายการสำหรับแบบจำลองและการทดสอบ ด้วยรูปแบบประเทศแบบย่อ
ตัวตรวจสอบความถูกต้องของ JSON
ตรวจสอบไวยากรณ์ JSON และตรวจจับเครื่องหมายจุลภาคต่อท้าย เครื่องหมายอัญประกาศที่ผิด คีย์ซ้ำ และโครงสร้างที่ผิดรูปแบบ พร้อมระบุตำแหน่งข้อผิดพลาดอย่างแม่นยำ
ตัวลดรูปพีชคณิตบูลีน
ประเมินนิพจน์บูลีนสำหรับทุกชุดอินพุตและดูตารางค่าความจริงที่สมบูรณ์ รองรับตัวแปรสูงสุดห้าตัวและตัวดำเนินการ &, |, !, ^
เครื่องมือนี้มีให้บริการในภาษาอื่น
- Generator konfiguracji webpack [PL]
- Generador de Configuración de Webpack [ES]
- Webpack設定ジェネレーター [JA]
- مولّد إعدادات Webpack [AR]
- Webpack 설정 생성기 [KO]
- Trình tạo cấu hình webpack [VI]
- Générateur de configuration Webpack [FR]
- Webpack-Konfigurationsgenerator [DE]
- Generator Konfigurasi Webpack [ID]
- Gerador de Configuração Webpack [PT]
- Webpack-konfigurationsgenerator [SV]
- Webpack-configuratiegenerator [NL]
- Webpack Config Generator [EN]
- Generatore di Configurazione Webpack [IT]
- Генератор конфигурации webpack [RU]
- Webpack Yapılandırma Oluşturucu [TR]
- Webpack 配置生成器 [ZH]