• 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. 微pe安装原版win10怎么装|wepe安装原版win10 1803教程

    http://www.xitongcheng.com/jiaocheng/xtazjc_article_42199.html 怎么制作wepe启动盘?微pe是一款全新高效.多功能pe维护工具箱,同时支 ...

  2. python 3.6闭包+循环获取出字典中所有的值并保存在list中

    def list_test(): list1=[] def list_all_dict(a): #检测字段类型 if isinstance(a,dict): for x in range(len(a) ...

  3. 开机自动挂载ISO文件

    开机自动挂载ISO文件 Table of Contents 1. 概述 1.1. 通过fstab 1.2. 通过rc.local 1 概述 开机自动挂载ISO 文件有两种途径 .一种是通过配置fsta ...

  4. <application>节点属性

    1.android:allowBackup 它表示是否允许应用程序参与备份.如果将该属性设置为false,则即使备份整个系统,也不会执行这个应用程序的备份操作,而整个系统备份能导致所有应用程序数据通过 ...

  5. Linux文档中翻页和搜索关键字

    按键 进行工作空格键 向下翻一页[Page Down] 向下翻一页[Page Up] 向上翻一页[Ctrl + U] 向上翻一页[Ctrl + D] 向下翻一页/string 向下搜寻string这个 ...

  6. Linux 查看Tomcat版本信息

    Linux 查看Tomcat版本信息 如果我们想运行在 Linux 下的 Tomcat 版本信息,只需要在 Tomcat 的 bin/ 目录下,运行 version.sh 脚本即可. 1.使用如下命令 ...

  7. Docker在PHP项目开发环境中的应用

    http://avnpc.com/pages/build-php-develop-env-by-docker

  8. SQL SERVER CLR Trigger功能

    通过在 Microsoft SQL Server 中托管 CLR(称为 CLR 集成),开发人员可以在托管代码中编写存储过程.触发器.用户定义函数.用户定义类型和用户定义聚合函数, 改变了以前只能通过 ...

  9. flask(1.0)

    目录 一. 关于KeyError和IndexError 二. Python三大主流框架对比 三. flask基础 1.安装flask 2.用flask写出的第一个页面 3.Flask的Response ...

  10. Linux 安装 openoffice

    1 说明 本文档采用rpm包方式安装,操作系统为centos 2 下载openoffice rpm包 创建nginx源码包存放目录 mkdir /usr/local/src/openoffice cd ...