zhanchujin
const { resolve } = require(\'path\')
const HtmlWebpackPlugin = require(\'html-webpack-plugin\')

module.exports = {
  entry: resolve(__dirname, \'src/index.js\'),
  output: {
    filename: \'built.js\',
    path: resolve(__dirname, \'build\'),
    publicPath: \'./\' // webpack5.1以上版本需要添加
  },
  module: {
    rules: [
      {
        test: /\.less$/,
        // 要使用多个多个loader处理用use
        use: [\'style-loader\', \'css-loader\', \'less-loader\']
      },
      {
        // 问题:默认处理不了html中的img图片
        // 处理图片资源
        test: /\.(jpg|png|gif)$/,
        // 只需使用一个loader:url-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: resolve(__dirname, \'src/index.html\')
    })
  ],
  mode: \'development\'
}

 

分类:

技术点:

相关文章:

  • 2021-10-17
  • 2021-05-06
  • 2021-10-18
  • 2021-10-06
  • 2023-04-11
  • 2021-09-24
  • 2021-12-25
  • 2021-12-25
猜你喜欢
  • 2021-12-25
  • 2021-12-25
  • 2021-12-25
  • 2021-12-25
  • 2021-12-25
  • 2021-08-02
相关资源
相似解决方案