webpack html自动引入,手撕webpack:HtmlWebpackPlugin 插件使用

介绍

HtmlWebpackPlugin 简化了HTML文件的创建,它可以帮我们自动生成一个 HTML 文件,并自动引入每次编译后的 webpack bundle 文件。如果你不想使用插件生成的 HTML文件, 也可以使用lodash模板提供你自己的模板。关于 lodash 模板的介绍请参考:https://lodash.com/docs#template

安装npm i --save-dev html-webpack-pluginyarn add --dev html-webpack-plugin

基本使用

下面的配置将为你生成一个 HTML5 文件, 打包后的 bundle 文件将插入到 script 标签:var HtmlWebpackPlugin = require('html-webpack-plugin');

var path = require('path');

var webpackConfig = {

entry: 'index.js',

output: {

path: path.resolve(__dirname, './dist'),

filename: 'index_bundle.js'

},

plugins: [

new HtmlWebpackPlugin()

]

};

编译后自动生成的 HTML 文件如下:html>

极限编程网

如果你有多个 webpack 入口点, 他们都会在生成的HTML文件中的 script 标签内。

常用选项

插件支持很多配置选项,通过这些选项你可以控制 HTML 内容的输出。

title

title 可以控制HTML 文档中 title 标签的内容,它是一个 string 类型的字符串,默认值是 "Webpack App" 。

filename

filename 配置自动生成的 HTML 文件的文件名称,它是一个 string 类型的字符串,默认值是 "index.html" 。

template

template 配置 HTML 文件模板的绝对路径,通过该配置我们可以指定自己的 HTML 模板。 在不指定模板解析器的时候,插件会使用 lodash 的 template 做为默认解析器,这也意味着可以在模板文件内使用 lodash 的语法,如。

templateParameters

允许覆盖模板中使用的参数,值可以是 Boolean、Object、Function。

inject

inject 规定打包后的资源文件放到 HTML 中的哪个位置。当传递true或'body'时,所有javascript资源将被放置在body元素的底部,'head'将把脚本放在head元素中。

favicon

将给定的favicon路径添加到输出HTML,它是一个 string 类型的字符串。

meta

允许向 HTML 注入 meta 标签,它是一个 object 对象。

hash

如果为 true,则向所有包含的脚本和CSS文件追加一个惟一的webpack编译散列,它是一个 Boolean 类型。

除了官方文档中提供的这些选项外,我们也可以增加自己的选项,使用案例请参考笔者的 《webpack 打包增加版本信息》 一文。

选项示例

webpack config 配置:const path = require("path")

const HtmlWebpackPlugin = require('html-webpack-plugin');

module.exports = {

entry: {

main: './src/index.js'

},

output: {

filename: 'index.js',

path: path.resolve(__dirname, 'dist')

},

plugins: [

new HtmlWebpackPlugin({

title: '极限编程网',

filename: 'home.html',

inject: "body",

template: "./home.html",

hash: true,

meta: {

'set-cookie': { 'http-equiv': 'set-cookie', content: 'name=value; expires=date; path=url' },

}

})

]

}

home.html 内容:html>

项目结构:

feff6d38765c95fea484c36c180174d8.png

打包编译后的 HTML 文件内容:html>

极限编程网

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值