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配置参数 ...
随机推荐
- 针对Openlayer3官网例子的简介
网址:http://openlayers.org/en/latest/examples/ 如果大家想了解ol3能做什么,或者说已提供的API有什么,又闲一个个翻例子跟API累的话,就看看这个吧. 1. ...
- Linux命令行与脚本编程大全第一章
1, 2,linux内核:内存管理.进程管理.文件管理.设备管理. 其中内存管理如下图: 通过命令 cat/proc/meminfo查看系统的内存状态.通过ipcs查看共享内存.信号量.消息队列信息. ...
- hdu1512 Monkey King(左偏树 + 并查集)
Once in a forest, there lived N aggressive monkeys. At the beginning, they each does things in its o ...
- 初入APP(结合mui框架进行页面搭建)
前 言 博主最近在接触移动APP,学习了几个小技巧,和大家分享一下. 1. 状态栏设置 现在打开绝大多数APP,状态栏都是与APP一体,不仅美观,而且与整体协调.博主是个中度强迫症患者,顶部那个 ...
- java中需要注意的小细节
很早以前就打算写博客,但是总是因为不知道写什么,或是觉得博客里其他人已经把我要写的整理很好了而迟迟没有动笔,现在决定把自己平时的记录的一些笔记拿出来,希望大神们可以批评指导,并且希望能够帮助一些刚刚入 ...
- 原生JS封装animate运动框架
<!DOCTYPE html><html><head lang="en"> <meta charset="UTF-8" ...
- Java面向对象 包
Java面向对象 包 知识概要: (1)包的概念 (2)包的命名 (3)编译执行 (4)导入 (5)包的访问权限 包: 包(package)用于将完成不同功能 ...
- 阿里云AliYun表格存储(Table Store)相关案例
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...
- JVM性能调优,GC
刚刚做完了一个项目的性能测试,“有幸”也遇到了内存泄露的案例,所以在此和大家分享一下. 主要从以下几部分来说明,关于内存和内存泄露.溢出的概念,区分内存泄露和内存溢出:内存的区域划分,了解GC回收机制 ...
- win10 UWP 圆形等待
看到一个圆形好像微软ProgressRing 我们可以用自定义控件 按ctrl+shift+a 用户控件 我们可以用Rectangle做圆形边 只要Rectangle RadiusX>0圆角 因 ...