博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
学习webpack4 - HTML处理
阅读量:5995 次
发布时间:2019-06-20

本文共 1751 字,大约阅读时间需要 5 分钟。

...持续中

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

HTML处理

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

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

安装插件

安装自动生成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

转载地址:http://kgqlx.baihongyu.com/

你可能感兴趣的文章
Linux命令工具基础04 磁盘管理
查看>>
设计模式---建造者模式Builder(创建型)
查看>>
SVG
查看>>
maven web配置发布路径 cargo自动部署项目到tomcat
查看>>
linxu select 返回值
查看>>
代码中特殊的注释技术——TODO、FIXME和XXX的用处
查看>>
Android开发(20)--RadioGroup的使用
查看>>
iphone开发之获取网卡的MAC地址和IP地址
查看>>
【网站国际化必备】Asp.Net MVC 集成Paypal(贝宝)快速结账 支付接口 ,附源码demo...
查看>>
java中不常见的keyword:strictfp,transient
查看>>
INDEX--创建索引和删除索引时的SCH_M锁
查看>>
linux C(hello world)
查看>>
微信平台BAE
查看>>
Java程序编译和运行的过程
查看>>
数学图形之牟合方盖
查看>>
Objective-C-类(static)方法、实例方法、overwrite(覆写)、属性(property)复习...
查看>>
PHP多次调用Mysql存储过程报错解决办法
查看>>
mysql的二级索引
查看>>
Cobar是提供关系型数据库(MySQL)分布式服务的中间件
查看>>
Oracle当前用户SQL
查看>>