webpack配置:关于字体图标呈方块的问题

发布于 2022-09-12 03:05:30 字数 681 浏览 17 评论 0

webpack配置: 关于图片设置,只要在配置里面只要加了 limit:4064,字体图标就会呈方块,去掉就不会,但是我只有加了才会把图片一起打包,有没有方法解决这个问题啊

  module:{
        rules:[
        {
            {
                test: /\.jpg|png|svg|woff|woff2|gif|ttf|eot$/i,
                use: [
                    {
                        loader: 'url-loader',//url-loader依赖了file-loader
                        options: {
                            esModule: false,
                            limit:4064,
                            name:'assets/[name]-[hash:5].[ext]/',
                        }
                    }
                ]
            },
            {test: /\.vue$/,use:'vue-loader'}
        ]
    },

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

顾冷 2022-09-19 03:05:30

字体资源不要通过 url-loader 引入,若尺寸过小会被转为 DataURL。你可以通过 file-loader 来引入。

关于 file-loaderURL-loader 的差异可以看看这个: 从零构建 webpack 脚手架(基础篇)

// 资源路径
const genAssetSubPath = (dir: string) => `${dir}/[name].[hash:8]`;

/**
 * 生成 url loader 选项
 */
const genUrlLoaderOptions = (dir: string) => ({
  limit: 4096,
  // 指定当目标文件的大小超过 limit 选项中设置的限制时, 使用的备用 loader 解析
  fallback: {
    loader: 'file-loader',
    options: {
      name: genAssetSubPath(dir),
    },
  },
});


  //  ========== rules ==========
  // 图片资源
  {
    test: /\.(png|jpe?g|gif|webp)(\?.*)?$/,
    use: {
      loader: 'url-loader',
      options: genUrlLoaderOptions('img'),
    },
  },

  // svg 不转为 base64
  // 除此之外还可以通过 raw-loader 获取 svg 的文本,但该选项会不会跟 file-loader 有冲突还需确认
  {
    test: /\.(svg)(\?.*)?$/,
    use: {
      loader: 'file-loader',
      options: {
        name: genAssetSubPath('img'),
      },
    },
  },

  // 媒体资源
  {
    test: /\.(mp4|webm|ogg|mp3|wav|flac|aac)(\?.*)?$/,
    use: {
      loader: 'url-loader',
      options: genUrlLoaderOptions('media'),
    },
  },
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文