• 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. 框架-Eureka:百科

    ylbtech-框架-Eureka:百科 1.返回顶部 1. Eureka是Netflix开发的服务发现框架,本身是一个基于REST的服务,主要用于定位运行在AWS域中的中间层服务,以达到负载均衡和中 ...

  2. DeviceUtils

    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/> import androi ...

  3. [Kaggle] How to handle big data?

    上一篇,[Kaggle] How to kaggle?[方法导论] 这里再做一点进阶学习. 写在前面 "行业特征" 的重要性 Ref: Kaggle2017—1百万美金的肺癌检测竞 ...

  4. Scala安装配置和使用

  5. JAVA 基础编程练习题9 【程序 9 求完数】

    9 [程序 9 求完数] 题目:一个数如果恰好等于它的因子之和,这个数就称为"完数".例如 6=1+2+3.编程找出 1000 以内的 所有完数. package cskaoyan ...

  6. HBase管理与监控——HBase region is not online

    发现有些regison程序操作失败,其他region 都是正常的,重启regionserver 后依然报同样的错误. 首先进入hbase的bin目录,执行下面命令检查表是否有存储一致性问题: hbas ...

  7. mysql安装报vcruntime140.dll缺失

    mysql安装报:vcruntime140.dll缺失 安装:Visual C++ Redistributable for Visual Studio 2015 可以解决此问题

  8. 在SSH里面远程启动ubuntu上的GUI程序

    由于嵌入式开发板上是ubuntu系统,开发板接有显示器,现有一GUI程序需要在开发板显示器上实时显示,开发板与本地通过网络SSH连接,正常情况执行如:firefox,那么firefox会显示到本地,只 ...

  9. 阿里云window server2012 r2服务器安装sql server2014配置成本地management工具连接

    1.关服务器防火墙. 2.阿里云管理控制台配置安全组, 3.进入服务器,打开

  10. 【HTML】常用的标签学习

    HTML(HyperText Markup Language )又称超文本标记语言,与一般文本文件不同的是它是由各种标签或标记组成 <标签名></标签名> .所以html的学习 ...