webpack4 使用模板生成 html 文件

虽然实际需求肯定不会只做这件事情,但是这篇文章只讲如何把模板文件转换为 html 文件,其他的内容,请移步:

把模板转换成 html 需要两个东西,一个是模板加载器,一个是 html 生成器,我的项目里使用的是腾讯的 art-template 模板,用到的插件如下:

插件版本用途
art-template^4.13.2模板核心插件
art-template-loader^1.4.3模板的 webpack loader
html-webpack-plugin^4.3.0生成 HTML 文件的插件

转换的核心插件是 html-webpack-plugin,辅助插件是选用的模板的 loader ,只要配置好了模板相应的 loader,它就可以把任意类型的模板转换为 HTML 文件。而且这个插件默认是支持 ejs 模板的。具体的配置如下:

module: {
    rules: [
		{
            test: /\.art$/,
            include: [resolve('src')],
            loader: 'art-template-loader',
        },
	]
}

plugins: [
	new HtmlWebpackPlugin({
		filename: '[path]/index.html',	// 输出文件,值为 path + filename
		template: 'index.art',	// 模板文件路径
		chunks: ['common']	// 引用的模块,这里的数组内容是 webpack 入口的 键名
	})
]

注意:

  1. 模板当中的路径,全部都会根据 webpack 的路径解析规则转换,加载对应的模块,所以如果要处理模板中引用的静态资源,就要配置相应的资源解析的 loader。
  2. 插件生成的 html 文件默认会插入所有的打包出来的资源文件,如果有多个页面,那就需要手动配置一下需要引入的资源文件,即在 chunks 里指定需要引用的资源

出现的问题:
模板中的图片资源引用在生成的 html 文件中呈现 src="[object Module]"
解决方案:url-loader/file-loader 配置 esModule: false

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值