119 lines
2.5 KiB
Markdown
119 lines
2.5 KiB
Markdown
# 1. Webpack
|
||
|
||
## 1.1 基础概念
|
||
### 1.1.1 入口(Entry)
|
||
入口起点指示 Webpack 应该使用哪个模块,来作为构建其内部依赖图的开始。示例配置如下:
|
||
```javascript
|
||
// webpack.config.js
|
||
module.exports = {
|
||
entry: './src/index.js'
|
||
};
|
||
```
|
||
|
||
### 1.1.2 输出(Output)
|
||
输出配置告诉 Webpack 在哪里输出它所创建的 bundles,以及如何命名这些文件。示例配置如下:
|
||
```javascript
|
||
const path = require('path');
|
||
|
||
module.exports = {
|
||
entry: './src/index.js',
|
||
output: {
|
||
path: path.resolve(__dirname, 'dist'),
|
||
filename: 'bundle.js'
|
||
}
|
||
};
|
||
```
|
||
|
||
## 1.2 加载器(Loaders)
|
||
### 1.2.1 Babel Loader
|
||
用于将 ES6+ 代码转换为浏览器可兼容的 JavaScript 代码。安装和配置示例如下:
|
||
```bash
|
||
npm install --save-dev babel-loader @babel/core @babel/preset-env
|
||
```
|
||
```javascript
|
||
module.exports = {
|
||
module: {
|
||
rules: [
|
||
{
|
||
test: /\.js$/,
|
||
exclude: /node_modules/,
|
||
use: {
|
||
loader: 'babel-loader',
|
||
options: {
|
||
presets: ['@babel/preset-env']
|
||
}
|
||
}
|
||
}
|
||
]
|
||
}
|
||
};
|
||
```
|
||
|
||
### 1.2.2 CSS Loader 和 Style Loader
|
||
用于处理 CSS 文件。安装和配置示例如下:
|
||
```bash
|
||
npm install --save-dev css-loader style-loader
|
||
```
|
||
```javascript
|
||
module.exports = {
|
||
module: {
|
||
rules: [
|
||
{
|
||
test: /\.css$/,
|
||
use: ['style-loader', 'css-loader']
|
||
}
|
||
]
|
||
}
|
||
};
|
||
```
|
||
|
||
## 1.3 插件(Plugins)
|
||
### 1.3.1 HtmlWebpackPlugin
|
||
用于生成 HTML 文件,并自动注入打包后的 JavaScript 文件。安装和配置示例如下:
|
||
```bash
|
||
npm install --save-dev html-webpack-plugin
|
||
```
|
||
```javascript
|
||
const HtmlWebpackPlugin = require('html-webpack-plugin');
|
||
|
||
module.exports = {
|
||
plugins: [
|
||
new HtmlWebpackPlugin({
|
||
template: './src/index.html'
|
||
})
|
||
]
|
||
};
|
||
```
|
||
|
||
### 1.3.2 CleanWebpackPlugin
|
||
用于在每次构建前清理 `dist` 目录。安装和配置示例如下:
|
||
```bash
|
||
npm install --save-dev clean-webpack-plugin
|
||
```
|
||
```javascript
|
||
const { CleanWebpackPlugin } = require('clean-webpack-plugin');
|
||
|
||
module.exports = {
|
||
plugins: [
|
||
new CleanWebpackPlugin()
|
||
]
|
||
};
|
||
```
|
||
|
||
## 1.4 开发服务器(Dev Server)
|
||
Webpack Dev Server 提供了一个简单的 Web 服务器,并且能够实时重新加载(Live Reloading)。安装和配置示例如下:
|
||
```bash
|
||
npm install --save-dev webpack-dev-server
|
||
```
|
||
```javascript
|
||
module.exports = {
|
||
devServer: {
|
||
contentBase: './dist',
|
||
open: true
|
||
}
|
||
};
|
||
```
|
||
运行开发服务器的命令:
|
||
```bash
|
||
npx webpack-dev-server --open
|
||
``` |