html-webpack-plugin的使用
使用前第一步:npm install 安装html-webpack-plugin --save--dev || --save (tips:--save--dev跟--save最大的区别就是--dev安装是为了仅仅在develop开发环境所依赖的,线上运行并不需要安装也能运行的依赖),献上webpack中文文档地址:=》http://www.jqhtml.com/7626.html
next=>安装完之后需要在webpack配置文件webpack.base.config中引用该依赖,exp:var htmlWebpackPlugin=required ('html-webpack-plugin'),引入之后可以在配置中的plugins属性中new一个htmlWebpackPlugin({})后使用命令npm run webpack会发现生成了一个html模板,证明插件使用成功了。
接下来便是webpack配置中的plugins选项new 出来的htmlWebpackPlugin的参数介绍了:
1):可以通过template属性指定webpack打包后的输出模板文件:=》template:index.html这样子便会把入口的Index.html文件单做模板来打包输出。
2):可以通过filename属性指定输出文件名:=》filename:'index-[hash].html'指定文件名index+哈希值。(tips:chunkHash跟hash的最大区别是hash代表compliation的哈希值,而compliation对象会 在任何一个要被打包的文件被改动后重新生成,也就是说单独修改一个文件会影响整个文件的compliation对象的重构,这样子打包后原来的未经改动的文件缓存也就会被新生成 的打包文件所覆 盖,而chunkHash则会是根据具体模块文件的内容计算所得的hash值,任何一个文件的更改只会影响到它本身的哈希值,并不会对其它文件哈希值造成影响,两者是独立的。本内容参见 http://www.cnblogs.com/ihardcoder/p/5623411.html)。
3):可以通过inject属性指定打包输出的模板内容嵌入的位置:=》inject:'body'这样子便会把输出 的内容嵌入到body标签内
4):可以通过title属性可自定义标题名,并在模板中通过<%= htmlWebpackPlugin.options.title%>来引用到title的值并在打包后的文件中输出。
5):data属性同上。
6):可以在模板文件中使用<% for (var key in htmlWebpackPlugin) {%><%=key%><%}%>在打包文件中输出failes跟options两个对象,同时也可以以同样方式分别输出两个对象的所有值。
7):可以在模板文件中使用<script src="<%=htmlWebpackPlugin.chunks.main.entry%>"></script>在打包文件中引用入口entry中的main.js文件
8):可以通过minify属性对输出后的文件进行压缩:=》removeComments:true//删除备注------其它minify属性参考webpack文档
9):多页面进行打包时需要在entry中指定多个html页面目录并创建多个对应的htmlWebpackPlugin,并可自定义其它属性名称来达到通过输出模板文件对该属性进行引用的目的
10):多页面打包时可以通过chunks属性指定需要引入的entry中的js文件路径
11):多页面打包时可以通过excludeChunks属性排除该属性指定的entry中的js文件路径
12):webpack的compilation对象中的assets[]方法接收去除publicPath(线上地址)后的文件路径,并通过source()方法将公用文件main直接写入到打包输出后的html文件中,这样可以大大提高 wepack打包效率=》<%=compilation.assets[htmlWebpackPlugin.files.chunks.main.entry.substr(htmlWebpackPlugin.files.publicPath.length)].source%>,其它外链的js文件可以在模板文件中循 环除了公用文件main.js的所有files对象中的chunk对象的每一个js文件名对应的entry目录,并通过script标签引入文件:
<%for(var k in htmlWebpackPlugin.files.chunks){%>
<%if(k!='main'){%>
<script src="<%=htmlWebpackPlugin.files.chunks[k].entry%>" type="text/javascript"></script>
<%}%>
<%}%>
最后run 一次webpack就可以看到嵌入的main的内容以及外链的其它js文件
以上就是htmlWebpackPlugin使用过程
html-webpack-plugin的使用的更多相关文章
- 如何开发webpack plugin
继上回介绍了如何开发webpack loader 之后.趁热打铁,来继续看下webpack另一个核心组成:plugin. 下面也和loader一样,让我们一起从基本的官方文档着手看起. loader和 ...
- 简单webpack plugin 开发
重要是学习下怎么开发webpack plugin,同时记录下 插件模型 webpack 是一个插件,可以是javascript class ,或者具名 class 定义apply 方法 指定一个绑定到 ...
- Webpack Plugin
[Webpack Plugin] Since Loaders only execute transforms on a per-file basis, plugins are most commonl ...
- 案例实战之如何写一个webpack plugin
案例实战之如何写一个webpack plugin 1.写一个生成打包文件目录的file.md文件 // 生成一个目录项目目录的文件夹 class FileListPlugin { constructo ...
- 揭秘webpack plugin
前言 Plugin(插件) 是 webpack 生态的的一个关键部分.它为社区提供了一种强大的方法来扩展 webpack 和开发 webpack 的编译过程.这篇文章将尝试探索 webpack plu ...
- YYDS: Webpack Plugin开发
目录 导读 一.cdn常规使用 二.开发一个webpack plugin 三.cdn优化插件实现 1.创建一个具名 JavaScript 函数(使用ES6的class实现) 2.在它的原型上定义 ap ...
- [转] webpack之plugin内部运行机制
简介 webpack作为当前最为流行的模块打包工具,几乎所有的主流前端开发框架(React.Vue等)都会将其作为默认的模块加载和打包工具.通过简单的配置项,使用各种相关的loader和plugin, ...
- 使用Webpack加速Vue.js应用的4种方式
Webpack是开发Vue.js单页应用程序的重要工具. 通过管理复杂的构建步骤,你可以更轻松地开发工作流程,并优化应用程序的大小和性能. 其中介绍下面四种方式: 单个文件组件 优化Vue构建 浏览器 ...
- 翻译 | 关键CSS和Webpack: 减少阻塞渲染的CSS的自动化解决方案
原文地址: Critical CSS and Webpack: Automatically Minimize Render-Blocking CSS 原文作者: Anthony Gore 译者: 蜗牛 ...
- webpack的世界
本文也是多次学习webapck积累下来的知识点,一直在云笔记里. webpack的原理 webpack构建流程 从启动webpack构建到输出结果经历了一系列过程,它们是: 解析webpack配置参数 ...
随机推荐
- 《MATLAB从入门到放弃》二维曲线和图形绘制基础(二):使用Help文档学习line、plot、plotyy、subplot、hold绘图函数
目录: » plot 最常用的二维曲线绘图函数 > 帮助文档 > 基本使用语法 > 线条的样式.符号和颜色调整 > 图形属性调整 > 使用图形句柄进行设置 » ...
- django获取ajax的post复杂对象
一.django的request中post对象为空(即获取不到前台ajax传送的post对象) 1.将django的setting中的django.middleware.csrf.CsrfViewMi ...
- jvm中的垃圾回收器
HotSpot JVM收集器 上面有7中收集器,分为两块,上面为新生代收集器,下面是老年代收集器.如果两个收集器之间存在连线,就说明它们可以搭配使用.Serial(串行GC)收集器 Serial收集器 ...
- 将图标LOGO之类的图形图像转换成字体调用方法大全
借鉴百度对此标题的评价: 使用字体图标的优势 字体图标除了图像清晰度之外,比位图还有哪些优势呢. 适用性:一个图标字体比一系列的图像(特别是在Retina屏中使用双倍大小的图像)要小.一旦图标字体加载 ...
- vue + ajax + php 接口的使用小接
vue + ajax + php 接口的使用小接 前端代码: (获取用户信息,并渲染页面) userinfor.html <!DOCTYPE html> <html lang=&qu ...
- python 设计模式,“多”例模式
版本1:一个账号不能同时是司机乘客. #-*- coding:utf-8 -*- ''' Created on 2016年8月2日 @author: yangfanholiday ''' class ...
- EF框架搭建小总结--ModelFirst模型优先
前言:去年刚工作的时候,也是刚刚正式接触.net,当时了解了EF以及三种开发模式,Database First.Model First .Code First.公司用的开发模式是Database Fi ...
- WebApi系列~HttpClient的性能隐患
回到目录 最近在进行开发过程中,基于都是接口开发,A站接口访问B接口接口来请求数据,而在这个过程中我们使用的是HttpClient这个框架,当然也是微软自己的框架,性能当前没有问题,但如果你直接使用官 ...
- Linux 进程状态 概念 Process State Definition
From : http://www.linfo.org/process_state.html 进程状态是指在进程描述符中状态位的值. 进程,也可被称为任务,是指一个程序运行的实例. 一个进程描述符是一 ...
- UVa816,Ordering Tasks,WA
#include <iostream> #include <cstdio> #include <string> #include <cstring> # ...