二、Webpack进阶玩法
说明
由于webpack5正式版刚发布不久,仍有插件不支持webpack5,因此此文以webpack4为例进行撰写。
webpack@4.44.1
webpack-cli@3.3.12
提取CSS成单独文件
安装插件
1 | yarn add mini-css-extract-plugin -D |
配置文件:将MiniCssExtractPlugin.loader
替换曾经的style-loader
1 | /** |
webpack5可能无法使用。
css兼容处理
安装插件
1 | yarn add postcss-loader postcss-preset-env -D |
插件配置
在
package.json
中加入配置1
2
3
4
5
6
7
8
9
10
11
12"browserslist": {
"development": [
"last 1 chrome version",
"last 1 firefox version",
"last 1 safari version"
],
"production": [
">0.2%",
"not dead",
"not op_mini all"
]
}编写在
webpack.config.js
同目录创建文件夹postcss.config.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14/**
* @description:
* @author: 小康
* @url: https://xiaokang.me
* @Date: 2021-01-01 15:09:48
* @LastEditTime: 2021-01-01 15:09:48
* @LastEditors: 小康
*/
module.exports = {
plugins: [
//使用postcss插件
require('postcss-preset-env')
]
}使用
postcss-loader
1
2
3
4
5
6
7
8module: {
rules: [
{
test: /\.css$/i,
use: [MiniCssExtractPlugin.loader, 'css-loader', 'postcss-loader']
}
]
}
压缩css
安装插件
1 | yarn add optimize-css-assets-webpack-plugin -D |
接下来在plugin使用即可
1 | const OptiomizeCssAssetsWebpackPlugin = require('optimize-css-assets-webpack-plugin') |
js语法检查
js语法检查使用airbnb。安装插件
1 | yarn add eslint-loader eslint eslint-config-airbnb-base eslint-plugin-import -D |
在
package.json
中配置1
2
3"eslintConfig": {
"extends": "airbnb-base"
}在
webpack.config.js
中配置loader1
2
3
4
5
6
7
8
9
10
11
12
13module: {
rules: [
{
test: /\.js$/,
exclude: /node_modules/,
loader: 'eslint-loader',
options: {
// 自动修复eslint的错误
fix: true
}
}
]
}
js兼容性处理
使用babel-loader
将es6语法转为es5语法。
1 | yarn add babel-loader @babel/preset-env @babel/core core-js -D |
webpack
配置
1 | module: { |
js与html压缩
生产环境下会自动压缩js代码。
压缩html同样使用插件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17plugins: [
new HtmlWebpackPlugin({
template: './src/index.html',
minify: {
removeComments: true,
collapseWhitespace: true,
removeRedundantAttributes: true,
useShortDoctype: true,
removeEmptyAttributes: true,
removeStyleLinkTypeAttributes: true,
keepClosingSlash: true,
minifyJS: true,
minifyCSS: true,
minifyURLs: true
}
})
]
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 小康博客!
评论
TwikooWaline