1.Webpack概念及使用
- webpack概念:现代 javascript 应用程序的静态模块打包器 (module bundler)
- 可以分析、压缩、打包代码
- 好处:减少文件数量,缩减代码体积
- 安装依赖包:yarn add webpack@5.31.2 webpack-cli@4.6.0 -D
- 在package.json中, 配置scripts(自定义命令)
scripts: {
"build": "webpack"
}
2.Webpack配置修改
const path = require("path")
module.exports = {
entry: "./src/main.js",
output: {
path: path.join(__dirname, "dist"),
filename: "bundle.js"
}
}
3.Webpack-打包流程图
- 敲击命令,代码执行过程
- 代码源文件和webpack之间关系图
4.Webpack自动复制html
- 下载插件:yarn add html-webpack-plugin@5.3.1 -D
- webpack.config.js配置:
const HtmlWebpackPlugin = require('html-webpack-plugin')
module.exports = {
plugins: [
new HtmlWebpackPlugin({
template: './public/index.html'
})
]
}
5.Webpack-加载器-处理css文件
- 下载模块包:yarn add css-loader@5.2.1 style-loader@2.0.0 -D
- webpack.config.js配置:
module.exporte = {
module:{
rules:[{
test:/\.css$/i
use:["style-loader","css-loader"]
}]
}
}
6.Webpack-加载器-处理less文件
- 下载模块包:yarn add less@4.1.1 less-loader@8.1.0 -D
- 把less文件翻译成css,还是要用css加载器
- webpack.config.js配置:
module.exporte = {
module:{
rules:[{
test:/\.less$/i
use:["style-loader","css-loader","less-loader"]
}]
}
}
7.Webpack-加载器-处理图片
- 转base64会减少网络请求次数,但占空间多30%左右
- webpack.config.js配置:
module.exporte = {
module:{
rules:[
test:/\.(png|jpg|gif|jpeg)/i,
type:'asset'
}
}
8.Webpack-加载器-处理字体图标
module.exporte = {
module:{
rules:[
test:/\.(eot|svg|ttf|woff|woff2)/i,
type:'asset/resource',
generator:{
filename:'fonts/[name].[hash:6][ext]'
}
}
}
9.Webpack-加载器-处理高版本js语法
- 下载安装包,yarn add babel-loader@8.2.2 @babel/core@7.13.15@babel/preset-env@7.13.15 -D
- webpack.config.js配置:
module.exporte = {
module:{
rules:[
test: /\.m?js$/,
exclude: /(node_modules|bower_components)/,
use: {
loader: 'babel-loader',
options: {
presets: ['@babel/preset-env']
}
}
}
}
10.Webpack开发服务器
- 下载安装包,yarn add webpack-dev-server@3.11.2 -D
- webpack.config.js配置:
"scripts":{"serve":"webpack serve"}
module.exporte = {
devServer:{
port:3000,
open:true
}
}
|