学习webpack4 - HTML处理

本文介绍如何使用Webpack4自动生成HTML入口页面并自动引入打包后的JS文件,包括配置webpack-html-plugin插件,实现HTML文件的自动生成、清理编译后的文件等功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

学习webpack4 - 基础配置
学习webpack4 - HTML处理
学习webpack4 - 样式处理
学习webpack4 - ES6语法转化
学习webpack4 - 第三方库的使用
学习webpack4 - 抽离公共代码

...持续中

=======================================================

HTML处理

有些时候,我们项目里的html一开始没有创建,但是打包的时候呢希望自动生成html入口页面并且这个html文件可以自动引入打包后的JS文件等,而且这个html文件自动被放到打包后的目录中,这种情况下怎么通过webpack配置呢?

注意:开始之前以下内容之前,需要配置一些webpack的基础配置,传送门:学习webpack4.x - 基础配置

安装插件

安装自动生成html文件需要的插件: webpack-html-plugin,它可以简化html文件的创建。

yarn add webpack-html-plugin -D

自动生成html

当前目录如下:

clipboard.png

下面开始配置webpack.config.js文件:

打开webpack.config.js文件, 引入 webpack-html-plugin 插件,并且在plugin中配置该插件:

let HtmlWebpackPlugin = require('html-webpack-plugin');

//插件配置
  plugins: [
    new HtmlWebpackPlugin({
      template: './src/index.html', //原始文件
      filename: 'index.html', //打包后的文件名称
    })
  ]

clipboard.png

尝试运行:

npm run dev

成功!运行后自动生成了build目录,并且在build目录中自动生成了index.html文件,结果如下:

clipboard.png

打包后的目录:

clipboard.png

浏览器中:

clipboard.png

webpack-html-plugin 常用配置选项

  • title: 用于生成的HTML文档的标题
  • filename: 要将HTML写入的文件, 默认index.html
  • template: webpack需要模板的路径
  • inject: 默认值true

    • true 或 body: 将脚本放在body底部。
    • head: 将脚本放在head元素中。
  • favicon: 将给定的favicon路径添加到输出HTML
  • meta: 允许注入meta-tags
  • minify: 缩小输出
  • hash: 如果webpack为所有包含的脚本和CSS文件附加唯一的编译哈希,对缓存清除很有用。

minify配置:

//插件配置
  plugins: [
    new HtmlWebpackPlugin({
      template: './src/index.html', //原始文件
      filename: 'index.html', //打包后的文件名称
      minify: {
        collapseWhitespace: true //折叠空行
      }
    })
  ]

效果:

clipboard.png

hash配置:

//插件配置
  plugins: [
    new HtmlWebpackPlugin({
      template: './src/index.html', //原始文件
      filename: 'index.html', //打包后的文件名称
      hash: true, //hash
    })
  ]

效果:

clipboard.png

清理编译后的文件

webpack编译后生成的文件会存放在固定的目录下,时间久了这个目录会相当杂乱,我们利用clean-webpack-plugin 这个插件在每次编译的时候先删掉这个目录,然后在去生成最新的这个目录,这样就可以保证每次这个目录下的文件都是最新的,而且不包含老的编译的文件遗留下来,方法如下:

step1: 配置webpack.config.js

const CleanWebpackPlugin = require('clean-webpack-plugin');

module.exports = {
  //...

  plugins: [
    new CleanWebpackPlugin(['dist'])  //dist是出口目录名称
  ]
}

step2: 安装插件

yarn add clean-webpack-plugin -D
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值