使用 webpack 进行字体文件处理
作者:Seiya
时间:2019年07月11日
处理字体文件
首先,我们来编写入口文件 app.js,如下所示:
import 'style-loader/lib/addStyles';
import 'css-loader/lib/css-base';
import './assets/fonts/iconfont.css';
借助 url-loader,可以识别并且处理 eot、woff 等结尾的字体文件。同时,根据字体文件大小,可以灵活配置是否进行 base64 编码,具体配置如下:
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]',
/* fonts file size <= 5KB, use 'base64'; else, output svg file */
limit: 5000,
publicPath: 'fonts/',
outputPath: 'fonts/'
}
}
]
}
]
},
plugins: [extractTextPlugin]
};
在 Chrome 中打开 index.html,可以看到字体文件被正确引入。