learn-webpack4(八)


字体文件处理

安装

{
  "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"
  }
}

需要提取 css 到一个单独的文件,所以需要 ExtractTextPlugin
在 app.js 需要引入 style-loader 和 css-loader

import "style-loader/lib/addStyles";
import "css-loader/lib/css-base";

import "./assets/fonts/iconfont.css";

webpack 配置

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]
};

打包后会按照你的配置在、dist/fonts/目录下生成打包好的文件


文章作者: 沐雪
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 沐雪 !
评论
 上一篇
learn-webpack4(九) learn-webpack4(九)
处理第三方 JS 库&&自动生成 html第三方库的管理1.CDN:<script></script>标签引入即可2.npm 包管理: 目前最常用和最推荐的方法 3.本地 js 文件:一些库由于历史原
2017-10-18
下一篇 
learn-webpack4(七) learn-webpack4(七)
图片处理图片处理 和 Base64 编码 (url-loader)图片压缩 (img-loader)合成雪碧图 (postcss-loader,postcss-sprites) base64 编码和图片压缩// webpack.conf
2017-10-16
  目录