webpack4--图片,字体处理

简介: webpack4--图片,字体处理
文章简要:

1、图片处理 和 Base64编码

2、图片压缩

3、合成雪碧图

4、处理字体

图片处理

安装url-loader

cnpm i url-loader --save-dev //url-loader包含了file-loader

配置loader

{
            test: /\.(png|jpg|jpeg|gif|svg)$/,
            use: [{
                  loader: "url-loader",
                  options: {
                    limit: 5000,  //小于该值的图片会使用base64编码,5000/1024k大约5kb
                    name: '[name].[hash:8].[ext]',  //打包后的图片名称 [ext]指图片格式
                    outputPath: "static/img/"//这个是图片输出地址,图片路径不对时候需要注意
                  }
                }]
        }

图片压缩

首先安装需要的loader(img-loader),需要压缩哪些图片格式还需要要安装对应的loader,这里统一安装全部(基本是)

npm install img-loader imagemin-gifsicle imagemin-mozjpeg imagemin-pngquant imagemin-svgo imagemin --save-dev

配置loader

{
            test: /\.(png|jpg|jpeg|gif|svg)$/,
            use: [{
                  loader: "url-loader",
                  options: {
                    limit: 5000,  //小于该值的图片会使用base64编码,5000/1024k大约5kb
                    name: '[name].[hash:8].[ext]',  //打包后的图片名称 [ext]指图片格式
                    outputPath: "static/img/"//这个是图片输出地址,图片路径不对时候需要注意
                  }
                },{
                    loader: 'img-loader',
                    options: {
                      plugins: [
                        require('imagemin-mozjpeg')({//这个是处理图片的格式jpeg,需要处理哪些格式都需要在此配置,
                          quality: "80" // 压缩质量,这个是压缩图片80%
                        }),
                        require('imagemin-pngquant')({
                           floyd: 0.5,
                           speed: 2
                         })
                      ]
                    }
                  }
              }]
        }

处理字体

{
            test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/,
            use: [
              {
                loader: "url-loader",
                options: {
                  name: '[name].[hash:8].[ext]',
                  limit: 5000, // fonts file size <= 5KB, use 'base64'; else, output svg file
                  outputPath: "static/fonts/" //文字输出路径
                }
              }
            ]
          }

处理字体跟处理图片用的都是url-loader,所以有时候放在一起配置也是可以的。

雪碧图处理

有2种方法,这里我们用postcss-loader的插件postcss-sprites,首先安装

cnpm i postcss-sprites --save-dev

配置loader

{
                    loader: "postcss-loader",
                    options: {
                        ident: "postcss",
                        plugins: [require("postcss-sprites")({
                            spritePath: "./dist/static/img",
                        })]
                    }
                }

打包就可以看到效果。这样做其实还有很多问题,怎么引用?怎么设置样式呢?

推荐一篇文章,讲的很详细:

http://www.yvonne.party/2019/07/07/webpack-sprites/

本文关于css的处理是提取css到一个文件,打包到dist/static/css文件夹下

打包后的目录如下:


image.png

打包后目录.png

顺带说下处理css的loader配置如下:(为了说明路径)

{
            test:/\.(sa|sc|c)ss$/,
            use: [
                {
                    loader: MiniCssExtractPlugin.loader,//MiniCssExtractPlugin.loader
                    options: {
                        publicPath: '../../',   //这个地方要注意
                    }
                },
                {
                 loader: "css-loader" // 将 CSS 转化成 CommonJS 模块
                },
                {
                 loader: "sass-loader" // 将 Sass 编译成 CSS
                },
                {
                    loader: "postcss-loader" // 将 Sass 编译成 CSS
                }
               ]
        }

需要注意的是 css的输出路径publicPath: '../../',这个路径一定要配置正确,关系到图片和字体的引用路径。

看上图打包后的目录图片,我css打包后在static/css/文件夹下,所以我这里publicPath: '../../'


相关文章
|
5月前
|
JavaScript 前端开发
webpack成长指北第9章---webpack如何对icon字体进行打包
webpack成长指北第9章---webpack如何对icon字体进行打包
107 1
|
JSON 前端开发 JavaScript
Webpack5新特性:使用 Assets Module 处理图片和字体资源
本文介绍了 Webpack5 的 Assets Module ,是其内置的用来处理图片字体文件等资源模块的新功能。相比与过去通过 loader 的方式去处理,更加方便和简洁。
1288 0
|
22天前
|
前端开发
umi webpack配置图片资源转base64
umi webpack配置图片资源转base64
|
5月前
|
JavaScript 前端开发
webpack成长指北第6章---webpack的图片引入
webpack成长指北第6章---webpack的图片引入
49 0
|
前端开发 JavaScript
第三章 webpack5处理图片资源
介绍如何处理图片资源
361 0
|
JavaScript 前端开发
[Node] Node.js Webpack打包图片-Js-Vue
[Node] Node.js Webpack打包图片-Js-Vue
webpack基础篇(八):资源解析--解析字体
webpack基础篇(八):资源解析--解析字体
100 0
webpack基础篇(八):资源解析--解析字体
webpack基础篇(七):资源解析--解析图片
webpack基础篇(七):资源解析--解析图片
111 0
webpack基础篇(七):资源解析--解析图片
|
前端开发
前端学习案例5-webpack中使用url-loader打包图片
前端学习案例5-webpack中使用url-loader打包图片
68 0
前端学习案例5-webpack中使用url-loader打包图片
webpack打包图片资源,图片不显示和index.html,HtmlWebpackPlugin
webpack打包图片资源,图片不显示和index.html,HtmlWebpackPlugin
288 0
webpack打包图片资源,图片不显示和index.html,HtmlWebpackPlugin
下一篇
无影云桌面