处理字体图标资源
1.下载字体图标文件
- 打开阿里巴巴矢量图图标库。
- 选择想要的图标添加到购物车,统一下载到本地。
2.添加字体图标资源
- src/fonts/iconfont.ttf
- src/fonts/iconfont.woff
- src/fonts/iconfont/woff2
- src/css/iconfont.css
- 注意字体文件路径需要修改
- src/main.js
import count from './js/count.js';
import sum from './js/sum.js';
import './css/iconfont.css';
import "./css/index.css";
import "./less/index.less";
import './sass/index.sass';
import './sass/index.scss';
import './styl/index.styl'
console.log(count(2, 1));
console.log(sum(1, 2, 3, 4));
- public/index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
</head>
<body>
<div>Hello World Webpack</div>
<div class="box1"></div>
<div class="box2"></div>
<div class="box3"></div>
<div class="box4"></div>
<div class="box5"></div>
<span class="iconfont icon-aixin"></span>
<span class="iconfont icon-bianji"></span>
<span class="iconfont icon-Dyanjing"></span>
<span class="iconfont icon-caidan"></span>
<script src="../dist/static/js/main.js"></script>
</body>
</html>
3.配置
const path = require("path");
module.exports = {
//入口
entry: "./src/main.js", //相对路径
//输出
output: {
//文件的输出路径
//__dirname nodejs的变量,代表当前文件的文件夹目录
path: path.resolve(__dirname, "dist"), //相对路径
//文件名
filename: "static/js/main.js",
//自动清空上次打包的内容
//原理:在打包前,将path整个目录内容清空,在进行打包。
clean: true,
},
//加载器
module: {
rules: [
{
// 用来匹配 .css 结尾的文件
test: /\.css$/,
// use 数组里面 Loader 执行顺序是从右到左
use: ["style-loader", "css-loader"],
},
{
test: /\.less$/,
//loader 只能使用一个 loader
use: [
// compiles Less to CSS
"style-loader",
"css-loader",
"less-loader",
],
},
{
test: /\.s[ac]ss$/i,
use: [
// 将 JS 字符串生成为 style 节点
"style-loader",
// 将 CSS 转化成 CommonJS 模块
"css-loader",
// 将 Sass 编译成 CSS
"sass-loader",
],
},
{
test: /\.styl$/,
use: [
"style-loader",
"css-loader",
"stylus-loader", // 将stylus编译成css文件
],
},
{
test: /\.(png|jpe?g|gif|webp)$/,
type: "asset",
parser: {
//小于10kb的图片转base64
//优点:减少请求数量 缺点:体积会更大
dataUrlCondition: {
maxSize: 10 * 1024, // 10kb
},
},
generator: {
//输出图片名称
//[hash:10] hash 取前10位
filename: "static/images/[hash:10][ext][query]",
},
},
{
test: /\.(ttf|woff2?)$/,
type: "asset/resource",
generator: {
//输出名称
filename: "static/media/[hash:10][ext][query]",
},
},
],
},
//插件
plugins: [
//plugin的配置
],
//模式
mode: "development",
};
type:"asset/resource"
和type:"asset"
的区别
type:"asset/resource"
相当于file-loader
,将文件转化成 webpack 能识别的资源,其他不做处理。type:"asset"
相当于url-loader
,将文件转成 webpack 能识别的资源,同时小于某个大小的资源会处理成 data URL 形式。
4.运行指令
npx webpack
打开 index.html 页面查看效果。