webpack 起步
找一個資料夾初始化 npm 專案 並安裝依賴。
mkdir webpack-demo && cd webpack-demo
npm init -y
npm install webpack webpack-cli --save-dev
複製程式碼
新增 npm script
"scripts": {
"build": "webpack --config webpack.config.js"
}
複製程式碼
基本用法
給專案新增一些檔案
webpack-demo
|- package.json
+ |- index.html
+ |- /src
+ |- index.js
# ./index.html
<!doctype html>
<html>
<head>
<title>Getting Started</title>
<!-- lodash js 庫 -->
<script src="https://unpkg.com/lodash@4.16.6"></script>
</head>
<body>
<script src="./src/index.js"></script>
</body>
</html>
# ./src/index.js
function component() {
let element = document.createElement('div');
// _ 由 lodash js 庫 提供
element.innerHTML = _.join(['Hello', 'webpack'], ' ');
return element;
}
document.body.appendChild(component());
複製程式碼
此外,還需要調整我們的package.json
檔案,以確保我們將包標記為私有,以及刪除 main
選項。 這是為了防止意外發布您的程式碼。
{
"name": "webpack-demo",
"version": "1.0.0",
"description": "",
+ "private": true,
- "main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [],
"author": "",
"license": "ISC",
"devDependencies": {
"webpack": "^4.20.2",
"webpack-cli": "^3.1.2"
},
"dependencies": {}
}
複製程式碼
這個例子 lodash
依賴是通過 <script>
引入的,是隱式並全域性依賴的。
這會帶來一些問題:
- 非顯式依賴的。
- 如果依賴丟失,或已錯誤的順序引入,程式將無法正常運作。
- 如果包含依賴項但未使用,瀏覽器依然會下載不必要的程式碼。
所以我們應該這樣做:
Bundle 將相關依賴的程式碼捆綁在一起
以這樣的方式引入依賴:
npm install --save lodash
複製程式碼
# src/index.js
+ import _ from 'lodash';
+
function component() {
let element = document.createElement('div');
- // Lodash, currently included via a script, is required for this line to work
element.innerHTML = _.join(['Hello', 'webpack'], ' ');
return element;
}
document.body.appendChild(component());
複製程式碼
Configuration 新增配置
在專案的根目錄下新增 webpack 配置檔案 webpack.config.js
。
使用 node js 程式設計。
webpack-demo
|- package.json
+ |- webpack.config.js
|- /dist
|- index.html
|- /src
|- index.js
複製程式碼
編譯
npm run build
# 或者
npx webpack --config webpack.config.js
# --config 中 webpack.config.js 是預設值。如果你的配置檔案是這樣命名的,執行 webpack 命令時可以忽略此引數
複製程式碼
配置檔案比簡單的CLI使用具有更大的靈活性。 我們可以通過這種方式指定載入器規則,外掛,解析選項和許多其他增強功能。 更多資訊可以看文件。
tips:
通過在npm run build命令和引數之間新增兩個破折號,可以將自定義引數傳遞給webpack :npm run build -- --colors. 複製程式碼
NEXT
現在已經有了基本構建,那麼您應該轉到下一個指南 assets 資產管理,以瞭解如何使用 webpack 管理影象和字型等靜態資源。