阅读 150

webpack学习04--打包图片资源

标签:common   har   exports   dirname   icp   type   htm   object   loader   

1.使用npm下载组件

npm i file-loader -D
npm i url-loader -D

 

2.配置webpack.config.js文件

const { resolve } = require(‘path‘);
const HtmlWebpackPlugin = require(‘html-webpack-plugin‘);

module.exports = {
  entry: ‘./src/index.js‘,
  output: {
    filename: ‘build.js‘,
    path: resolve(__dirname, ‘build‘),
    publicPath: ‘./‘//webpack5 需要加入此行设置!!!!!!!  },
  module: {
    rules: [
      {
        test: /\.less$/,        // 要使用多个loader处理用use
        use: [‘style-loader‘, ‘css-loader‘, ‘less-loader‘]
      },
      {        // 问题:默认处理不了html中img图片
        // 处理图片资源
        test: /\.(jpg|png|gif|JPG)$/,        // 使用一个loader
        // 下载 url-loader file-loader
        loader: ‘url-loader‘,
        options: {          // 图片大小小于8kb,就会被base64处理
          // 优点: 减少请求数量(减轻服务器压力)
          // 缺点:图片体积会更大(文件请求速度更慢)
          limit: 8 * 1024,          // 问题:因为url-loader默认使用es6模块化解析,而html-loader引入图片是commonjs
          // 解析时会出问题:[object Module]
          // 解决:关闭url-loader的es6模块化,使用commonjs解析
          esModule: false,          // 给图片进行重命名
          // [hash:10]取图片的hash的前10位
          // [ext]取文件原来扩展名
          name: ‘[hash:10].[ext]‘
        }
      },
      {
        test: /\.html$/,        // 处理html文件的img图片(负责引入img,从而能被url-loader进行处理)
        loader: ‘html-loader‘
      }
    ]
  },
  plugins: [    new HtmlWebpackPlugin({
      template: ‘./src/index.html‘
    })
  ],
  mode: ‘development‘};

 

3.准本3张图片

angular.jpg
react.png
vue.jpg

 

4.编写相关文件

index.less

#box1{
  width: 100px;
  height: 100px;
  background-image: url(‘./vue.jpg‘);
  background-repeat: no-repeat;
  background-size: 100% 100%;
}

#box2{
  width: 200px;
  height: 200px;
  background-image: url(‘./react.png‘);
  background-repeat: no-repeat;
  background-size: 100% 100%;
}

#box3{
  width: 300px;
  height: 300px;
  background-image: url(‘./angular.jpg‘);
  background-repeat: no-repeat;
  background-size: 100% 100%;
}

 

index.js

import ‘./index.less‘

 

index.html

<!DOCTYPE html><html lang="en"><head>
    <meta charset="UTF-8">
    <title>Title</title></head><body>
    <div id="box1"></div>
    <div id="box2"></div>
    <div id="box3"></div></body></html>

 

5.执行webpack打包命令

webpack

 

6.生成build.js和index.html文件

技术图片

 

 

新生成的index.html 

<!DOCTYPE html><html lang="en"><head>
    <meta charset="UTF-8">
    <title>Title</title></head><body>
    <div id="box1"></div>
    <div id="box2"></div>
    <div id="box3"></div><script src="./build.js"></script></body></html>

页面效果:

技术图片

 

webpack学习04--打包图片资源

标签:common   har   exports   dirname   icp   type   htm   object   loader   

原文地址:https://www.cnblogs.com/asenyang/p/14403421.html


文章分类
后端
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐