小编Tog*_*oge的帖子

Webpack 5:文件加载器生成具有哈希名称的字体副本

我不知道这里发生了什么事。我使用文件加载器加载应用程序的字体:

{
    test: /.(ttf|otf|eot|svg|woff(2)?)(\?[a-z0-9]+)?$/,
    use: [{
      loader: 'file-loader',
      options: {
        name: '[name].[ext]',
        outputPath: 'assets/fonts/',
        publicPath: '../fonts/'
      }
    }]
  },
Run Code Online (Sandbox Code Playgroud)

字体也是在我指定的结构中生成的:dist/assets/fonts。 outputPath: 'assets/fonts/'...它似乎工作正常。

但是: Webpack 还会将字体以哈希值作为名称打包到 /dist 下,并将 CSS 文件中的路径设置为这些文件。

@font-face{font-family:"PaulGrotesk";font-style:normal;font-weight:400;src:url(../../d9bc4e30281429c0cddd.eot);
Run Code Online (Sandbox Code Playgroud)

奇怪的字体文件

这里发生了什么?如何防止生成附加文件并将其用作路径?

我在用

  • 网页包:^5.47.1
  • webpack-cli: ^4.7.2

我的 webpack.config:

const path = require('path');
const MiniCssExtractPlugin = require('mini-css-extract-plugin')
const HtmlWebpackPlugin = require('html-webpack-plugin');

module.exports = {

  entry: './src/index.js',

  output: {
    path: path.resolve(__dirname, 'dist'),
    filename: 'assets/js/bundle_v1.0.0.js'
  },

  module: {

    rules: [

      {
        test: /\.js?$/,
        exclude: /node_modules/,
        loader: 'babel-loader',
        include: path.join(__dirname, 'index'),
        options: {
          presets: …
Run Code Online (Sandbox Code Playgroud)

javascript css fonts webpack webpack-5

33
推荐指数
3
解决办法
2万
查看次数

标签 统计

css ×1

fonts ×1

javascript ×1

webpack ×1

webpack-5 ×1