@tripmini/font-compression-plugin

0.3.3 • Public • Published

font-compression-plugin 字体压缩插件

简介✍️

基于font-spider的一款字体压缩插件,通过此插件可实现vue项目打包时对特殊字体的自动化压缩 该插件将会在你规定的文件路径下(默认为“src/assets/font/”)生成一个font.html和font.css模板,以及压缩的字体文件,将生成的font.css文件在全局引入便能轻松使用压缩字体

💡tips:

  • 为了便于调试,测试环境并不会对字体进行压缩(isProEnv字段默认为false)
  • 提供的字体源文件必须有.ttf格式的字体文件,否则无法进行压缩!!

🌲生成文件目录结构 可生成字体类型

  • ttf
  • woff
  • woff2
├── font.css
├── font.html
├── pmzd.ttf
├── pmzd.woff
└── pmzd.woff2

安装🔧

npm i @tripmini/font-compression-plugin -D

参数与默认值🐛

new FontCompressionPlugin({
  // 特殊字体列表 必传🌟
  // 每个对象代表一种特殊字体,包含特殊字体引用的字体名称,字体选择器,字体文件引用路径,使用到该特殊的字体的文本(文本量大时可以使用引入外部文件的方式)
  fontList: [
    {
      // 字体名
      fontName: 'pmzd',
      // 字体选择器
      className: 'pmzd', 
      // 字体文件引用路径
      // 注意⚠️:此处不需要带字体文件后缀名,且字体原始文件必须为.ttf
      fontDir: '../static/pmzd',
      // 特殊字体文本
      content: '我是特殊字体'
    }
  ],
  // 生成提供给font-spider解压的html文件名 非必传
  // default: 'font.html'
  htmlfile: 'font.html',
  // 规定生成的字体相关文件所在的文件目录,⚠️注意事先创建好文件夹 非必传
  // default: 'src/assets/font/
  baseUrl: 'src/assets/font/',
  // 是否为生产环境? 非必传
  // default: false
  isProEnv: false
});

使用说明📖

🌰 举个栗子

👉 安装插件 执行命令

npm i @tripmini/font-compression-plugin --save

👉 配置插件 在项目中导入你的特殊字体文件,注意字体文件必须带有.ttf格式⚠️⚠️⚠️!!!

// vue.config.js
const FontCompressionPlugin = require('@tripmini/font-compression-plugin')

module.exports = {
  configureWebpack: config => {
    config.plugins.push(new FontCompressionPlugin({
      fontList: [
        {
          fontName: 'pmzd',
          className: 'pmzd', 
          fontDir: 'public/pmzd', // 注意⚠️:此处不需要带字体文件后缀名,此路径为字体在项目中的存放路径,请根据项目具体情况确保路径填写正确
          content: '我是特殊字体'
        }
      ],
      htmlfile: 'font.html',
      baseUrl: 'src/assets/font/',
      isProEnv: process.env.NODE_ENV === 'production' // 配置项
    }))
  }
}

👉 全局引入font.css文件 css文件所在路径即是你配置的baseUrl,如你配置的baseUrl为'src/assets/font/',那么你的css文件路径即是'src/assets/font/font.css',具体例子如下所示:

// App.vue

<template>
  <div id="app">
  </div>
</template>
<script>
export default {
  name: 'App',
  components: {
    // ...
  },
  data() {
    return {
      // ...
    }
  }
}
</script>
<style>
@import './assets/font/font.css';
</style>

👉 使用特殊字体 在需要使用特殊字体的css中使用该字体,font-family对应的字体名为你在fontlist传入的对应字体名

// demo.vue

<template>
  <div>
  <div class="demo">我是普通字体(我是特殊字体)</div>
  </div>
</template>
<script>
export default {
  components: {
    // ...
  },
  data() {
    return {
      // ...
    }
  }
}
</script>
<style>
.demo {
  font-family: 'pmzd';
}
</style>

Package Sidebar

Install

npm i @tripmini/font-compression-plugin

Weekly Downloads

0

Version

0.3.3

License

ISC

Unpacked Size

16.2 kB

Total Files

4

Last publish

Collaborators

  • wzqhaha
  • wanpan_11
  • channingliu
  • chimyeon
  • gaoneng1850
  • fennghuang