资讯专栏INFORMATION COLUMN

webpack4 系列教程(十一):字体文件处理

UnixAgain / 1646人阅读

摘要:或者来我的小站看更多内容课程介绍和资料本节课源码所有课程源码本节课的代码目录如下本节课的内容如下准备字体文件和样式如上面的代码目录所示,字体文件和样式都放在了目录下。编写按照上面的配置,打包好的和均位于文件夹下。

教程所示图片使用的是 github 仓库图片,网速过慢的朋友请移步《webpack4 系列教程(十一):字体文件处理》原文地址。或者来我的小站看更多内容:godbmw.com
0. 课程介绍和资料

>>>本节课源码

>>>所有课程源码

本节课的代码目录如下:

本节课的package.json内容如下:

{
  "devDependencies": {
    "css-loader": "^1.0.0",
    "extract-text-webpack-plugin": "^4.0.0-beta.0",
    "file-loader": "^1.1.11",
    "style-loader": "^0.21.0",
    "url-loader": "^1.0.1",
    "webpack": "^4.16.1"
  }
}
1. 准备字体文件和样式

如上面的代码目录所示,字体文件和样式都放在了/src/assets/fonts/目录下。点我直接下载相关文件

2. 编写入口文件

为了提取 css 样式到多带带文件,需要用到ExtractTextPlugin插件。在项目的入口文件需要引入style-loadercss-loader:

// app.js
import "style-loader/lib/addStyles";
import "css-loader/lib/css-base";

import "./assets/fonts/iconfont.css";
3. 处理字体文件

借助url-loader,可以识别并且处理eotwoff等结尾的字体文件。同时,根据字体文件大小,可以灵活配置是否进行base64编码。下面的 demo 就是当文件大小小于5000B的时候,进行base64编码。

// webpack.config.js

const path = require("path");
const ExtractTextPlugin = require("extract-text-webpack-plugin");

let extractTextPlugin = new ExtractTextPlugin({
  filename: "[name].min.css",
  allChunks: false
});

module.exports = {
  entry: {
    app: "./src/app.js"
  },
  output: {
    publicPath: __dirname + "/dist/",
    path: path.resolve(__dirname, "dist"),
    filename: "[name].bundle.js",
    chunkFilename: "[name].chunk.js"
  },
  module: {
    rules: [
      {
        test: /.css$/,
        use: ExtractTextPlugin.extract({
          fallback: {
            loader: "style-loader"
          },
          use: [
            {
              loader: "css-loader"
            }
          ]
        })
      },
      {
        test: /.(eot|woff2?|ttf|svg)$/,
        use: [
          {
            loader: "url-loader",
            options: {
              name: "[name]-[hash:5].min.[ext]",
              limit: 5000, // fonts file size <= 5KB, use "base64"; else, output svg file
              publicPath: "fonts/",
              outputPath: "fonts/"
            }
          }
        ]
      }
    ]
  },
  plugins: [extractTextPlugin]
};
4. 编写index.html

按照上面的配置,打包好的cssjs均位于/src/dist/文件夹下。因此,需要在index.html中引入这两个文件(假设已经打包完毕):





  
  
  
  Document
  



  
5. 结果分析和验证

CMD中运行webpack进行打包,打包结果如下:

在 Chrome 中打开index.html,字体文件被正确引入:

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/98258.html

相关文章

  • webpack-demos:全网最贴心webpack系列教程和配套代码

    摘要:全网最贴心系列教程和配套代码欢迎关注个人技术博客。所以我花费了个多月整理了这份教程,一共分成节,每节都有讲解,并且准备了配套代码。奈何深感水平不够,只有一腔热情,所以直接开放了教程和源码。 webpack-demos:全网最贴心 webpack 系列教程和配套代码 欢迎关注个人技术博客:godbmw.com。每周 1 篇原创技术分享!开源教程(webpack、设计模式)、面试刷题(偏前...

    LMou 评论0 收藏0
  • webpack4 系列教程: 前言

    摘要:课程地址全部课程地址立即进入课程源码目录截至按照知识点,目录分成了个文件夹之后还会持续更新。个人网站原文链接系列教程前言 本文档已经过时,最近内容请看:https://godbmw.com/passage/76。一共16节课程和代码。谢谢支持。 1. 什么是webpack? 前端目前最主流的javascript打包工具,在它的帮助下,开发者可以轻松地实现加密代码、多平台兼容。而最重要的...

    DevWiki 评论0 收藏0
  • webpack4系列教程(十):总结

    摘要:传送门系列教程一初识系列教程二创建项目,打包第一个文件系列教程三自动生成项目中的文件系列教程四处理项目中的资源文件一系列教程五处理项目中的资源文件二系列教程六使用分割代码系列教程七使用系列教程八使用审查代码系列教程九开发环境和生产环境 在前端开发日益复杂的今天,我们需要一个工具来帮助我们管理项目资源,打包、编译、预处理、后处理等等。webpack的出现无疑是前端开发者的福音,我的博文只...

    hqman 评论0 收藏0
  • webpack4 系列教程(六): 处理SCSS

    摘要:只需要在处理的配置上增加编译的即可。了解更多处理的内容本节课源码所有课程源码教程所示图片使用的是仓库图片,网速过慢的朋友请移步原文地址系列教程六处理。根据规则放在最后的首先被执行。 这节课讲解webpack4中处理scss。只需要在处理css的配置上增加编译scss的 LOADER 即可。了解更多处理css的内容 >>> >>> 本节课源码 >>> 所有课程源码 教程所示图片使用的是...

    马龙驹 评论0 收藏0
  • webpack4 系列教程(十三):自动生成HTML文件

    摘要:作者按因为教程所示图片使用的是仓库图片,网速过慢的朋友请移步系列教程十三自动生成文件原文地址。编写配置文件老规矩,是在这个选项中配置的。更多资料文档文档系列教程十三自动生成文件原文地址 作者按:因为教程所示图片使用的是 github 仓库图片,网速过慢的朋友请移步《webpack4 系列教程(十三):自动生成 HTML 文件》原文地址。更欢迎来我的小站看更多原创内容:godbmw.co...

    superw 评论0 收藏0

发表评论

0条评论

UnixAgain

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<