webpack (三) -打包图片-配置加载器file-loader-把图片作为背景图使用 & 打包字体-在less文件引入字体格式,流程同打包图片

08-webpack-打包图片

第一步:在src/assets下,创建图片文件夹images,新建src/assets/images/logo.png文件

第二步:webpack.config.js中配置文件,因为webpack默认打包js文件,如果引入其他格式图片文件,需要用对应的加载器插件处理该文件,把代码解析成js文件,才可以加载图片等格式文件

https://www.webpackjs.com/guides/asset-management/#加载图片

  • 命令行(开发依赖)中安装图片加载包
npm install --save-dev file-loader
  • webpack.config.js中配置文件
onst path = require('path');

  module.exports = {
    entry: './src/index.js',
    output: {
      filename: 'bundle.js',
      path: path.resolve(__dirname, 'dist')
    },
    module: {
      rules: [
        {
          test: /\.css$/,
          use: [
            'style-loader',
            'css-loader'
          ]
        },
+       {
		   //加载后缀名.png|svg|jpg|gif 等图片格式文件
+         test: /\.(png|svg|jpg|gif)$/,
		  //使用图片加载器  加载图片
+         use: [
+           'file-loader'
+         ]
+       }
      ]
    }
  };

第三步:把图片作为背景图使用,让less文件生效,同样在src/index.js入口文件中进行引入less文件

作为背景图渲染到页面

第四步:手动修改html文件路径

修改文件路径

第五步:命令行运行代码,图片预览成功

图片预览成功

注意:

此种手动修改index.html文件的路径,非正常操作方式

09-webpack-打包字体文件

第一步:在src/assets下,创建字体文件夹fonts,新建src/assets/fonts/font.ttf文件

第二步:在src/styles/index.less中:

// 定义一个字体
@font-face{
  font-family: "hm-79";    //字体名字
  src: url(../assets/fonts/font.ttf) format('truetype');   //路径和固定格式
}
// 使用这个字体  所有p标签
p{
  font-family: hm-79
}

第三步:在新复制的dist/index.html中,对比字体样式

字体样式对比

第四步:webpack.config.js中配置文件,因为webpack默认打包js文件,如果引入其他格式字体文件,需要用对应的加载器插件处理该文件,把代码解析成js文件,才可以加载图片等格式文件

https://www.webpackjs.com/guides/asset-management/#加载字体

  • 命令行(开发依赖)中安装字体加载包file-loader,打包图片时已安装则忽略
npm install --save-dev file-loader
  • webpack.config.js中配置文件即可
+       {
		  //加载后缀名.woff|woff2|eot|ttf|otf 等字体格式文件
+         test: /\.(woff|woff2|eot|ttf|otf)$/,
		  //使用字体加载器  加载字体
+         use: [
+           'file-loader'
+         ]
+       }

第五步:命令行运行代码,打包

npm run build

打包成功后,dist文件夹下会生成一个字体文件

打开新复制的dist/index.html,验证字体样式对比

字体样式对比生效

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在开发环境,我们可以使用url-loaderfile-loader加载图片字体文件。其,url-loader将小于指定limit的文件转换为base64编码的DataURL,而file-loader会将大于指定limit的文件复制到输出目录。 下面是使用url-loaderfile-loader配置: ```javascript module.exports = { module: { rules: [ { test: /\.(png|jpe?g|gif|svg)(\?.*)?$/, loader: 'url-loader', options: { limit: 10000, name: 'img/[name].[hash:7].[ext]' } }, { test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/, loader: 'file-loader', options: { limit: 10000, name: 'fonts/[name].[hash:7].[ext]' } } ] } } ``` 在生产环境,我们通常会将图片字体文件进行压缩和优化,以减小文件大小。因此,我们可以使用url-loaderfile-loader的limit选项来控制文件的输出方式,以便更好地适应生产环境的需求。 下面是使用url-loaderfile-loader的生产环境配置: ```javascript module.exports = { module: { rules: [ { test: /\.(png|jpe?g|gif|svg)(\?.*)?$/, loader: 'url-loader', options: { limit: 10000, name: utils.assetsPath('img/[name].[hash:7].[ext]'), publicPath: '../' // 修改图片引用路径 } }, { test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/, loader: 'file-loader', options: { limit: 10000, name: utils.assetsPath('fonts/[name].[hash:7].[ext]') } } ] } } ``` 在生产环境,我们通常会将图片字体文件输出至单独的目录,并修改图片引用路径以便更好地进行缓存和优化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值