Webpack 是一個帶有豐富多樣功能的前端網站包裝工具,將我們網站的各項資產 HTML, CSS, images, JS 進行包裝/壓縮/相容性排除/效能提昇等工作,這次就讓我們透過 Webpack 5 Up and Running 這本書一一剖析 Webpack 的各種強大功能吧!
1. Without Webpack or Other Module Bundler Library
首先先來測試看看,我們在沒有 Webpack 的情境下,應該如何進行作業。
Let's Do This Now 🔥
- 專案初始化
# 初始化專案 mkdir 01-sample-app && cd 01-sample-app npm init -y
自動產生 package.json
{ "name": "01-sample-app", "version": "1.0.0", "description": "", "private": true, "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "keywords": [], "author": "", "license": "ISC" }
- 撰寫 JS Component
Dir: src/index.js
function component() { let element = document.createElement('div'); // _ 使用 lodash 第三方 Lib element.innerHTML = _.join(['Testing', 'without', 'webpack'], ' '); return element; } document.body.appendChild(component());
- 撰寫 HTML
Dir: index.html
<!doctype html> <html> <head> <title>Webpack - Test</title> <!-- 引用 lodash Lib --> <script src="https://unpkg.com/lodash@4.16.6"></script> </head> <body> <!-- 載入 index Component --> <script src="./src/index.js"></script> </body> </html>
- 結果預覽
完成我們的第一步驟! 實做如何在沒有 Webpack 的狀況下完成我們的網站 !
2. With Webpack
- 專案初始化
# 初始化專案 mkdir 01-sample-app && cd 01-sample-app npm init -y # 安裝 webpack lib npm install webpack webpack-cli --save-dev # 安裝 lodash lib npm install lodash
自動產生 package.json 看到多增加了 webpack / lodash 🌈
{ "name": "01-sample-app2", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1", "build": "webpack --config webpack.config.js" }, "keywords": [], "author": "", "license": "ISC", "devDependencies": { "webpack": "^5.69.1", "webpack-cli": "^4.9.2" }, "dependencies": { "lodash": "^4.17.21" } }
- 撰寫 JS Component
Dir: src/index.js
// 透過 webpack 的封裝我們可以直接使用 import 來引用我們所需要的 lib import _ from 'lodash'; function component() { let element = document.createElement('div'); element.innerHTML = _.join(['Hello', 'Webpack'], ' '); return element; } document.body.appendChild(component());
- 撰寫 HTML
Dir: dist/index.html
不需要在引用我們的lib webpack 會自動幫我們進行包裝
<meta charset="utf-8"/> ⬅️ 缺少這句在 Webpack5 production mode 狀況下會發生錯誤
<!doctype html> <html> <head> <!-- webpack mode=production --> <meta charset="utf-8"/> <title>Getting Started</title> </head> <body> <script src="main.js"></script> </body> </html>
- 使用 Webpack 進行編譯
npx webpack mode=development
- 開啟 index.html 預覽結果
好了我們的第一章節 Introduction to Webpack 5 結束 🎉
後面的章節會再介紹有關 Webpack 的強大功能!敬請期待!
Top comments (0)