详解webpack自动生成html页面
网络编程 2021-07-04 18:32www.168986.cn编程入门
本篇文章主要介绍了详解webpack自动生成页面,长沙网络推广觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随长沙网络推广过来看看吧
在项目中我们会不断的添加,优化代码,每次添加优化之后都需要打包进行上传更新。这时问题就回来了,每次打包出来js,css文件的名字都是一样的,在首页index.html的引用也不会变,这样老用户在访问这个页面时看到就会是浏览器缓存的版本,而不是最新的版本,想要看到最新版本还要进行清缓存,强制刷新,这显然是不可能的,那我们要如何解决这个问题呢?
有同学可能想到每次打包之后我改一下打包出来文件的名字,然后在首页index,html里面把引用代码里的文件名字也改掉就可以了,这种方法是可以的,每次都要改这么多,显然会很耗费时间,而且人工手动修改很可能也会带来bug。又有一位同学可能会说,不用那么麻烦,直接在上线前,在css,js资源引用的后面加一个随机数就可以了。这种方法虽然比第一种方法简单了许多,还是没有解决之前的问题。那么我们能不能实现每次打包完直接生成的文件后面加上一个随机字符串,然后首页里的引用也一起自动变成最新打包的文件呢?答案是可以的,接下来我将讲一下利用webpack实现
webpack实现这个功能,要下载一个webpack的插件html-webpack-plugin
npm install html-webpack-plugin
接下来要在羡慕里新建一个文件,这个文件就是我们要生成的首页文件的模板
//template.js module.exports = function (templateParams) { return ( `<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <title> ${templateParams.htmlWebpackPlugin.options.title} </title> <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no"> <meta name="author" content=""/> <meta name="keywords" content=""> <meta name="description" content=""> <meta name="HandheldFriendly" content="true"> <meta http-equiv="content-type" content="text/html; charset=utf-8"> <meta http-equiv="Cache-Control" content="no-transform"> <meta http-equiv="Cache-Control" content="no-siteapp"> <meta name="apple-mobile-web-app-capable" content="yes"> <meta name="apple-mobile-web-app-status-bar-style" content="default"> <!--other: default, black, black-translucent--> <meta name="format-detection" content="telephone=no"> </head> <script> function hasToken() { var result = /ztoken/g.test(document.cookie) && !(document.cookie.split('ztoken=')[1].split(';')[0] === ''); return result } function clearCookieAll() { var keys = document.cookie.match(/[^ =;]+(?=\=)/g); if (keys) { for (var i = keys.length; i--;) document.cookie = keys[i] + '=0;expires=' + new Date(0).toUTCString() } } if (!hasToken()) { console.warn('无效token') clearCookieAll() window.location.href = '/index.html' } </script> <body> <div id="root" style="height:100%"></div> <!--<div>development mode</div>--> </body> </html>` ) }
准备工作做好了,接下来就是进行配置了
//引入插件 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值,这样每次更新之后用户就会自动获取最新资源了。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持狼蚁SEO。
编程语言
- 如何快速学会编程 如何快速学会ug编程
- 免费学编程的app 推荐12个免费学编程的好网站
- 电脑怎么编程:电脑怎么编程网咯游戏菜单图标
- 如何写代码新手教学 如何写代码新手教学手机
- 基础编程入门教程视频 基础编程入门教程视频华
- 编程演示:编程演示浦丰投针过程
- 乐高编程加盟 乐高积木编程加盟
- 跟我学plc编程 plc编程自学入门视频教程
- ug编程成航林总 ug编程实战视频
- 孩子学编程的好处和坏处
- 初学者学编程该从哪里开始 新手学编程从哪里入
- 慢走丝编程 慢走丝编程难学吗
- 国内十强少儿编程机构 中国少儿编程机构十强有
- 成人计算机速成培训班 成人计算机速成培训班办
- 孩子学编程网上课程哪家好 儿童学编程比较好的
- 代码编程教学入门软件 代码编程教程