html-webpack-plugin插件的详细介绍和使用

 1 var webpack = require('webpack');
 2 var HtmlWebpackPlugin = require('html-webpack-plugin');
 3 module.exports = {
 4     devtool:'eval-source-map',
 5     devServer:{
 6         inline:true,
 7         colors:true,
 8         port:8080,
 9         contentBase:__dirname + '/public'
10     },
11     entry:{
12         index:__dirname + '/app/index.js',
13         main:__dirname + '/app/main.js'
14     },
15     output:{
16         path:__dirname + '/public', //通过HtmlWebpackPlugin插件生成的html文件存放在这个目录下面
17         filename:'/js/[name].js' //编译生成的js文件存放到根目录下面的js目录下面,如果js目录不存在则自动创建
18     },
19     plugins:[
20         new HtmlWebpackPlugin({
21             title:'自动生成自定义标题',//如果使用了模板,就使用模板里的title,这里的title设置会失效,哪怕模板里的title为空
22             template:__dirname + '/public/tempIndex.html',//需要编译的模板,可以是jade等第三方模板引擎也可以说纯html页面
23             filename:'demo.html',//最终生成的文件名,默认是index.html
24             hash:true,//是否给所有包含的js、css文件后面添加hash值,可以用来清除缓存,但好像不是很管用
25             inject:true,// | 'head' | 'body' | false  ,注入所有的资源到特定的 template 或者 templateContent 中,如果设置为 true 或者 body,所有的 javascript 资源将被放置到 body 元素的底部,'head' 将放置到 head 元素中。
26             chunks:['index'] //指定生成的文件demo.hmtl需要包括entry里的哪些入口文件(这里是index,main.js不会引入),不设置的话所以入口js文件都会被引入进来
27         }),
28         new webpack.HotModuleReplacementPlugin() //热加载
29     ]
30 }

 Note:HtmlWebpackPlugin插件配置里的hash属性虽然可以给html引入的所以css文件后面加hash字符串,可以达到清除缓存的效果,但缺点是有些不需要清除缓存的css文件它也清除了,因为每次编译它会给所有css文件加同样的hash字符串。即时其他css没有变化。所以推荐用extract-text-webpack-plugin插件在编译提取css属性的时候用contenthash配置一下就可以解决这个问题。更详细的介绍点击这篇文章

posted @ 2016-12-03 23:23  向着太阳生  阅读(6357)  评论(0编辑  收藏  举报