
เมื่อเขียนโค้ด ไฟล์ js ภายใต้ src จะถูกนำเสนอ หลังจากทำแพ็คเกจ webpack แล้ว ไฟล์รายการจะถูกสร้างขึ้นในเวลานี้ ชื่อและเส้นทางของไฟล์ js ใน html นั้นผิด ดังนั้น webpack จำเป็นต้องจัดทำแพ็คเกจและต้องจัดทำแพ็คเกจไฟล์ html พาธไปยังไฟล์ js ที่นำเข้าถูกแทนที่แล้ว
ประโยชน์ของการใช้ webpack เพื่อจัดทำแพ็กเกจ html คือ:
(1) ไฟล์ js ที่ทำแพ็กเกจสามารถนำเข้าสู่ html ได้โดยอัตโนมัติ
(2) หลังจากที่ทำแพ็กเกจ html แล้ว มันจะยังคงถูกสร้างขึ้นในโฟลเดอร์ build และรวมเข้ากับไฟล์ js ที่ทำแพ็กเกจแล้ว เพื่อว่าเมื่อเราออนไลน์ คุณจะต้องคัดลอกโฟลเดอร์ที่สร้างโดยแพ็คเกจไปยังสภาพแวดล้อมออนไลน์
(3) มันจะช่วยให้เราบีบอัดไฟล์ html
1. ติดตั้งปลั๊กอิน
Webpack สามารถเข้าใจได้เฉพาะไฟล์ JS และ JSON และต้องรองรับไฟล์อื่น ๆ ทุกประเภทจำเป็นต้องติดตั้งปลั๊กอินหรือตัวโหลดที่เกี่ยวข้อง
หากเราต้องการจัดแพ็คเกจไฟล์ HTML ก่อนอื่นเราต้องติดตั้งปลั๊กอิน html-webpack-plugin :
npm ติดตั้ง html-webpack-plugin -D
บทบาทของปลั๊กอินนี้:
สร้างไฟล์ html ภายใต้การส่งออกตามค่าเริ่มต้น จากนั้นนำเข้าทรัพยากร JS/CSS ทั้งหมด
เรายังระบุไฟล์ html ด้วยตนเองและเพิ่มทรัพยากรลงในไฟล์ html นี้ได้
2.
หลังจากติดตั้งปลั๊กอิน html-webpack-plugin กำหนดค่าในไฟล์ webpack.config.js :
// ...
// 1. แนะนำปลั๊กอิน const HtmlWebpackPlugin = need('html-webpack-plugin');
โมดูล.ส่งออก = {
-
// 2. กำหนดค่าปลั๊กอินปลั๊กอินในปลั๊กอิน: [
ใหม่ HtmlWebpackPlugin({
template: 'index.html', // ระบุไฟล์เทมเพลตรายการ (สัมพันธ์กับไดเร็กทอรีรากของโปรเจ็กต์)
ชื่อไฟล์: 'index.html', // ระบุชื่อไฟล์เอาต์พุตและที่ตั้ง (สัมพันธ์กับไดเร็กทอรีเอาต์พุต)
// สำหรับรายการการกำหนดค่าอื่นๆ ของปลั๊กอิน คุณสามารถดูเอกสารอย่างเป็นทางการของปลั๊กอินได้})
-
} ลิงก์การกำหนดค่าโดยละเอียด: https://www.npmjs.com/package/html-webpack-plugin
ตรวจสอบให้แน่ใจว่าพาธและชื่อไฟล์ของไฟล์เทมเพลตรายการสอดคล้องกับการกำหนดค่า จากนั้นคุณสามารถคอมไพล์ได้
3. เมื่อกำหนดค่ารายการ JS หลายรายการและสถานการณ์ HTML หลาย
ไฟล์ จำเป็นต้องรวบรวมไฟล์ HTML หลายไฟล์ และไฟล์จำเป็นต้องนำเข้าไฟล์ JS ที่แตกต่างกัน อย่างไรก็ตาม ตามค่าเริ่มต้น ไฟล์ HTML ที่จัดทำแพ็กเกจจะนำเข้าไฟล์ JS ที่ chunk ทำแพ็กเกจทั้งหมดได้ ระบุเพื่อแจกจ่าย JS
เส้นทาง const = ต้องการ ('เส้นทาง');
// 1. แนะนำปลั๊กอิน const HtmlWebpackPlugin = need('html-webpack-plugin');
โมดูล.ส่งออก = {
-
// 2. กำหนดค่ารายการ JS (หลายรายการ)
รายการ: {
ผู้ขาย: ['./src/jquery.min.js', './src/js/common.js'],
ดัชนี: './src/index.js',
รถเข็น: './src/js/cart.js'
-
//กำหนดค่าการส่งออก: {
ชื่อไฟล์: '[ชื่อ].js',
เส้นทาง: path.resolve(__dirname, 'build/js')
-
// 3. กำหนดค่าปลั๊กอิน: [
ใหม่ HtmlWebpackPugin({
แม่แบบ: 'index.html',
ชื่อไฟล์: 'index.html',
// ใช้ chunk เพื่อระบุไฟล์ JS ที่จะนำเข้า chunk: ['index', 'vendor']
-
// จำนวน HTML ที่ต้องคอมไพล์, จำนวนปลั๊กอินใหม่ที่จำเป็น new HtmlWebpackPlugin({
แม่แบบ: './src/cart.html',
ชื่อไฟล์: 'cart.html',
ชิ้น: ['รถเข็น', 'ผู้ขาย']
-
-
} เคล็ดลับ: สิ่งที่ต้องสังเกตที่นี่คือจำนวนไฟล์ HTML ที่คุณต้องคอมไพล์ และกี่ครั้งที่คุณต้องใช้
HtmlWebpackPluginใหม่
หลังจากคอมไพล์การกำหนดค่าข้างต้นสำเร็จแล้ว ผลลัพธ์จะเป็นดังนี้:
build
|__ index.html #แนะนำ index.js และ vendor.js
|__ cart.html #แนะนำcart.js และ vendor.js
|__ เจส
|__ vendor.js # สร้างโดย jquery.min.js และ common.js |__ index.js # สร้างโดย index.js |__ cart.js # สร้างโดย cart.js สำหรับ 1, webpack การกำหนดค่า config.js
const HTMLWebpackPlugin = need('html-webpack-plugin')
-
ปลั๊กอิน: [
// html-webpack-plugin การกำหนดค่าบรรจุภัณฑ์ html ปลั๊กอินนี้จะสร้างไฟล์ HTML5 สำหรับคุณ HTMLWebpackPlugin ใหม่ ({
เทมเพลต: "./index.html", // เส้นทางสัมพัทธ์หรือสัมบูรณ์ที่แพ็กเกจไปยังเทมเพลต (เป้าหมายการทำแพ็กเกจ)
title: 'Home', // ชื่อที่ใช้สำหรับแฮชเอกสาร HTML ที่สร้างขึ้น: true, //true ต่อท้ายแฮชการคอมไพล์ webpack ที่ไม่ซ้ำใครกับสคริปต์และไฟล์ CSS ที่รวมไว้ทั้งหมด ส่วนใหญ่ใช้เพื่อล้างแคช
ย่อขนาด: { // บีบอัด html
ยุบWhitespace: จริง // ยุบช่องว่าง KeepClosingSlash: จริง // เก็บช่องว่างที่ปิดไว้ RemoveComments: จริง // ลบความคิดเห็น RemoveRedundantAttributes: จริง // ลบแอตทริบิวต์ที่ซ้ำซ้อน RemoveScriptTypeAttributes: จริง // ลบสคริปต์ แอตทริบิวต์ประเภทสคริปต์ RemoveStyleLinkTypeAttributes: จริง // ลบแอตทริบิวต์ประเภทลิงก์สไตล์ useShortDoctype: true, // ใช้ประเภทเอกสารสั้น ๆ รักษาLineBreaks: true, // รักษาตัวแบ่งบรรทัด miniifyCSS: true, // บีบอัด css ในข้อความ
minifyJS: true, // บีบอัด js ในข้อความ
-
-
-
... 2. ในขณะนี้ของเรา index.html
<!DOCTYPE html>
<html lang="">
<หัว>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<title>webpackDemo</title>
</หัว>
<ร่างกาย>
<div id="แอป">
การกำหนดค่าบรรจุภัณฑ์ html</div>
</ร่างกาย>
</html> 3. ในขณะนี้ index.js ของเรา
นำเข้า './../css/index.less'
ฟังก์ชั่นเพิ่ม(x,y) {
กลับ x+y
-
console.log(add(2,3)); 3. พิมพ์แพ็กเกจในคอนโซล webpack และพบว่าไฟล์เอาต์พุตแพ็กเกจมี index.html เพิ่มเติม โดยมีเนื้อหาดังนี้
<!DOCTYPE html>
<html lang="">
<หัว>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<title>webpackDemo</title>
<script เลื่อน src="index.js"></script></head>
<ร่างกาย>
<div id="แอป">
การกำหนดค่าบรรจุภัณฑ์ html</div>
</ร่างกาย>
</html> <script defer="" src="index.js"></script> จะถูกนำมาใช้โดยอัตโนมัติใน
เบราว์เซอร์เพื่อเปิดการส่งออกที่บรรจุดัชนี พบว่ารูปแบบที่มีผลกระทบและการควบคุม หน่วยยังส่งออกตามปกติ:

