3.1打包背景图片

  1. const {resolve}=require('path')
  2. const HtmlWebpackPlugin=require('html-webpack-plugin')
  3. module.exports={
  4. entry:'./src/index.js',
  5. output:{
  6. filename:'bundle.js',
  7. path:resolve(__dirname,'dist')
  8. },
  9. mode:'development',
  10. module:{
  11. //对某种格式的文件进行转换的处理
  12. rules:[
  13. {
  14. //匹配规则,得用正则表达式,这里是匹配后缀名
  15. test:/\.less$/,
  16. use:[
  17. //先将css文本的格式用style标签插进html中,在进行css渲染
  18. //将js的样式插入style标签中
  19. //数组中解析的顺序是从下到上的顺序,逆序执行
  20. "style-loader",
  21. //将css转化为js
  22. "css-loader",
  23. "less-loader"
  24. ]
  25. },
  26. //这里需要配置图片
  27. {
  28. test:/\.(jpg|png|gif)$/,
  29. loader:"url-loader",
  30. options:{
  31. limit:10*1024,
  32. }
  33. }
  34. ]
  35. },
  36. plugins:[
  37. new HtmlWebpackPlugin({
  38. template:'./src/index.html'
  39. })
  40. ]
  41. }

下载

在使用背景图片时应该下载两个loader
npm i file-loader url-loader -D

结构
image.png

在入口文件需要引入css或者less文件
//index.js
import './index.less'

3.2打包img标签直接引入图片

const { resolve } = require("path");
const HtmlWebpackPlugin = require("html-webpack-plugin");
module.exports = {
  entry: "./src/index.js",
  output: {
    filename: "bundle.js",
    path: resolve(__dirname, "dist"),
  },
  mode: "development",
  module: {
    //对某种格式的文件进行转换的处理
    rules: [
      {
        //匹配规则,得用正则表达式,这里是匹配后缀名
        test: /\.less$/,
        use: [
          //先将css文本的格式用style标签插进html中,在进行css渲染
          //将js的样式插入style标签中
          //数组中解析的顺序是从下到上的顺序,逆序执行
          "style-loader",
          //将css转化为js
          "css-loader",
          "less-loader",
        ],
      },
      {
        test: /\.(jpg|png|gif)$/,
        loader: "url-loader",
        options: {
          limit: 8 * 1024,
          // 因为url-loader解析时,默认选择的是es6模块化解析,而html引用图片使用的是common.js
          // 解析会出现问题:[object Module],
          //所以需要关闭es6解析模块,使用common.js
          esModule: false,
        },
      },
      {
        test: /\.html$/,
        loader: "html-loader",
          options: {
            esModule: false,
          }
      },
    ],
  },
  plugins: [
    new HtmlWebpackPlugin({
      template: "./src/index.html",
    }),
  ],
};

这里需要下载html-loader 将url-loader解析成es6模式

注意这里打包图片

  options: {
            esModule: false,
          }
 在html-loader和url-loader都得写