• html-webpack-plugin
  • clean-webpack-plugin

一、html-webpack-plugin

由于打包时生成的css样式文件和js脚本文件会采用hash值作为文件命名的一部分,每一次调试打包结果都需要手动修改名称,这种做法就违背了webpack的自动化打包的初衷,而且还有需求就是要对html文件进行优化压缩,也不能直接在源文件上进行操作,还有清除注释等一系列操作。

npm install html-webpack-plugin --save-dev

更详细的教程文档可以参考npm插件文档:https://www.npmjs.com/package/html-webpack-plugin

 var HtmlWebpackPlugin = require('html-webpack-plugin');
module.exports = {
plugins: [
//生成html文件
new HtmlWebpackPlugin({
filename:'index.html',//生成的文件名
template:'./index.html',//指定打包压缩的文件
minify:{
removeComments:true,//清除注释
collapseWhitespace:true//清理空格
}
})
}

当然也可以同时处理多个html文件(通过chunks属性):

 plugins: [
new HtmlWebpackPlugin({
chunks: ['app']
})
]

二、clean-webpack-plugin

clean-webpack-plugin插件是用来清理构建文件夹,将上一次构建的文件全部清除,这个插件很简单,只需要plugins中引入就可以,没有什么多余的配置,但是需要注意的是在创建变量的时候需要使用大括号将变量名包裹起来,不然有时会出现报错情况,原因尚不明确:

 const {CleanWebpackPlugin} = require('clean-webpack-plugin');
module.exports = {
plugins: [
new CleanWebpackPlugin()//清理构建文件夹
]
}

这边博客是基于上一篇博客的基础上测试的,所有测试代码与上一篇博客一致,只有配置文件增加了一些新的功能,下面贴上全部配置文件代码:

 var path = require("path");
const glob = require('glob');
const PurifyCSSPlugin = require('purifycss-webpack');
var MiniCssExtractPlugin = require("mini-css-extract-plugin");
var HtmlWebpackPlugin = require('html-webpack-plugin');
const {CleanWebpackPlugin} = require('clean-webpack-plugin');
module.exports = {
entry: {
index: './src/index.js',
},
output: {
path: path.resolve(__dirname, "dist"),
filename: "[name]-[hash:5].js",
// publicPath:'/dist'
},
module: {
rules: [
{
test: /\.less$/,
use: [
// {loader:'style-loader'},
{ loader: MiniCssExtractPlugin.loader },
{ loader: 'css-loader' },
{
loader: 'postcss-loader',
options: {
ident: 'postcss',
plugins: [
// require('autoprefixer')(),//添加前缀
require('postcss-cssnext')(),//添加前缀 转换css未来语法
require('cssnano')({
preset: 'default'
}),
]
}
},
{ loader: 'less-loader' }],
}
]
},
plugins: [
new MiniCssExtractPlugin({
// Options similar to the same options in webpackOptions.output
// both options are optional
filename: "[name]-[hash:5].css",
// chunkFilename: "[id].css"
}),
new HtmlWebpackPlugin({
filename:'index.html',//生成的文件名
template:'./index.html',//打包压缩的文件
minify:{
removeComments:true,//清除注释
collapseWhitespace:true//清理空格
}
}),
new CleanWebpackPlugin()
// new PurifyCSSPlugin({
// paths:glob.sync(path.join(__dirname,'../index.html'))
// })
]
}

webpack中使用html-webpack-plugin生成HTML文件并主动插入css和js引入标签的更多相关文章

  1. webpack 中,loader、plugin 的区别

    loader 和 plugin 的主要区别: loader 用于加载某些资源文件. 因为 webpack 只能理解 JavaScript 和 JSON 文件,对于其他资源例如 css,图片,或者其他的 ...

  2. 实现excel导入导出功能,excel导入数据到页面中,页面数据导出生成excel文件

    今天接到项目中的一个功能,要实现excel的导入,导出功能.这个看起来思路比较清楚,但是做起了就遇到了不少问题. 不过核心的问题,大家也不会遇到了.每个项目前台页面,以及数据填充方式都不一样,不过大多 ...

  3. 在spring boot 中使用itext和itextrender生成pdf文件

    转载请注明出处 https://www.cnblogs.com/majianming/p/9539376.html 项目中需要对订单生成pdf文件,在第一版本其实已经有了比较满意的pdf文档,但是还是 ...

  4. html中插入css和js

    插入css: HTML周明华添加css样式的方法有很多种,常见的有一下几种:. 1.直接标签后添加如: <html> <div style="background:red; ...

  5. webpack中如何编写一个plugin

    loader和plugin有什么区别呢?什么是loader,什么是plugin. 当我们在源代码里面去引入一个新的js文件或者一个其他格式的文件的时候,这个时候,我们可以借助loader去帮我们处理引 ...

  6. 让linux中的程序崩溃时生成core文件

    当我们的linux程序崩溃的时候,常常会有这样的提示:    Segmentation fault (core dumped)    段错误 (核心已转储)    提示说生成了core文件,但是此功能 ...

  7. 自动添加菜品,加入运行中遇到的异常,生成日志文件...<工作中场景...>

    """ 很弱智的小脚本,记录下.也许以后看到会笑,因为太幼稚或者证明曾经也努力过.so... """ """ ...

  8. Spring 中 AbstractExcelView 支持根据模板生成Excel文件. 通过设置 view 的 URL 属性指定模板的路径

     注意:1. 模板需放在 WEB-INF 目录下2. 指定模板路径时不需要添加扩展名, Spring将自动添加 .xls 到URL 属性中.3. 在指定URL前需先设置 view 的 Applicat ...

  9. 将文件夹中的图像路径自动生成txt文件(便于opencv遍历处理图像)

    代码: #include<iostream> #include<vector> #include<io.h> #include<fstream> usi ...

随机推荐

  1. 性能分析 | MySQL 的慢查分析实例

    最近遇见一个 MySQL 的慢查问题,于是排查了下,这里把相关的过程做个总结. 定位原因 我首先查看了 MySQL 的慢查询日志,发现有这样一条 query 耗时非常长(大概在 1 秒多),而且扫描的 ...

  2. 性能测试 | Linux系统top命令中的io使用率,很多人都误解了它的具体含义

    body{ text-align:left; width:80%; margin:10px 100px; } 最近在做连续数据流的缓冲系统,C语言代码实现后,粗略测试了下,功能上应该没有问题.那么,接 ...

  3. Kafka API使用

  4. 忘记mysql或mariadb数据库的密码之解决方案

    一.实验环境 CentOS Linux release 7.5.1804 (Core) mysql  Ver 15.1 Distrib 5.5.56-MariaDB, for Linux (x86_6 ...

  5. spring配置注解context:annotation-config和context:component-scan区别

    Spring 中在使用注解(Annotation)会涉及到< context:annotation-config> 和 < context:component-scan>配置, ...

  6. JAVA_day1_变量和常量

    JAVA变量和常量 一.JAVA中的关键字 注:关键字区分大小写,Try不是关键字而try则是. 二.JAVA标识符 1.标识符:标识符就是用于给 Java 程序中变量.类.方法等命名的符号. 2.标 ...

  7. Django-Form组件-formset_factory

    Formset 多个表单的集合,可以同时提交多个from表单中的数据,在web页面中,可以在同一个页面,提交多个form表单. Django针对不同的formset提供了3种方法: formset_f ...

  8. JMeter—压力测试&性能测试工具

    安装 下载 官方网站下载最新版本: http://jmeter.apache.org/download_jmeter.cgi,使用JMeter依赖jdk,建议安装jdk 1.6版本以上. 环境变量配置 ...

  9. 【VS开发】【Live555-rtsp】在windows 使用vs2008编译live555

    在windows 使用vs2008编译live555 基于 liveMedia的程序,需要通过继承UsageEnvironment抽象类和TaskScheduler抽象类,定义相应的类来处理事件调度, ...

  10. C学习笔记-预备知识

    计算机结构组成 CPU(中央处理器)(控制器+运算器) 存储器(内存+外存) 输出设备 输入设备 计算机系统组成 硬件系统 主机 中央处理器 运算器 控制器 内存储器 只读存储器 随机存储器 外部设备 ...