详解webpack自动生成html页面

网友投稿 405 2023-05-03


详解webpack自动生成html页面

在项目中我们会不断的添加,优化代码,每次添加优化之后都需要打包进行再次上传更新。这时问题就回来了,每次打包出来js,css文件的名字都是一样的,在首页index.html的引用也不会变,这样老用户在访问这个页面时看到就会是浏览器缓存的版本,而不是最新的版本,想要看到最新版本还要进行清缓存,强制刷新,这显然是不可能的,那我们要如何解决这个问题呢?

首先有同学可能想到每次打包之后我改一下打包出来文件的名字,然后在首页index,html里面把引用代码里的文件名字也改掉就可以了,这种方法是可以的,但是每次都要改这么多,显然会很耗费时间,而且人工手动修改很可能也会带来bug。又有一位同学可能会说,不用那么麻烦,直接在上线前,在css,js资源引用的后面加一个随机数就可以了。这种方法虽然比第一种方法简单了许多,但是还是没有解决之前的问题。那么我们能不VYoTthZnW能实现每次打包完直接生成的文件后面加上一个随机字符串,然后首页里的引用也一起自动变成最新打包的文件呢?答案是可以的,接下来我将讲一下利用webpack实现

webpack实现这个功能,首先要下载一个webpack的插件html-webpack-plugin

npm install html-webpack-plugin

接下来要在羡慕里新建一个文件,这个文件就是我们要生成的首页文件的模板

//template.js

module.exports = function (templateParams) {

return (

http://`

`

)

}

准备工作做好了,接下来就是进行配置了

//首先引入插件

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

界限来在配置webpack的plugins选项

plugins: [

new HtmlWebpackPlugin({ //根据模板插入css/js等生成最终HTML

// favicon:'./src/img/favicon.ico', //favicon路径

filename:'src/index.html', //生成的html存放路径,相对于 path

template:'./src/app/template/template.js', //html模板路径

title: '升级空间运营后台',

cache: true,

inject:true, //允许插件修改哪些内容,包括head与body

hash:true, //为静态资源生成hash值

minify:{ //压缩HTML文件

removeComments:true, //移除HTML中的注释

collapseWhitespace:false //删除空白符与换行符

}

})

],

执行打包命令后,你会发现生成自动生了HTML代码,在index,html资源引用的地方会在资源后面自动生成一串hash值,这样每次更新之后用户就会自动获取最新资源了。


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Java注解实现动态数据源切换的实例代码
下一篇:Angular 2 ngForm中的ngModel、[ngModel]和[(ngModel)]的写法
相关文章

 发表评论

暂时没有评论,来抢沙发吧~