全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

详解webpack自动生成html页面

在项目中我们会不断的添加,优化代码,每次添加优化之后都需要打包进行再次上传更新。这时问题就回来了,每次打包出来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值,这样每次更新之后用户就会自动获取最新资源了。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# webpack自动生成html  # webpack  # 生成html  # 首页  # 就会  # 就可以  # 来了  # 随机数  # 这种方法  # 也会  # 都要  # 这么多  # 又有  # 会在  # 要在  # 很可能  # 我将  # 会说  # 种方法  # 会很  # 生了  # 相对于  # 准备工作 


相关文章: 建站之星云端配置指南:模板选择与SEO优化一键生成  SAX解析器是什么,它与DOM在处理大型XML文件时有何不同?  Thinkphp 中 distinct 的用法解析  建站主机CVM配置优化、SEO策略与性能提升指南  实例解析angularjs的filter过滤器  建站主机是否属于云主机类型?  定制建站如何定义?其核心优势是什么?  建站之星安装失败:服务器环境不兼容?  如何通过虚拟主机空间快速建站?  如何通过多用户协作模板快速搭建高效企业网站?  赚钱网站制作软件,建一个网站怎样才能赚钱?是如何盈利的?  如何快速生成可下载的建站源码工具?  如何高效配置IIS服务器搭建网站?  如何挑选最适合建站的高性能VPS主机?  微信h5制作网站有哪些,免费微信H5页面制作工具?  高防服务器租用首荐平台,企业级优惠套餐快速部署  道歉网站制作流程,世纪佳缘致歉小吴事件,相亲网站身份信息伪造该如何稽查?  广州网站制作公司哪家好一点,广州欧莱雅百库网络科技有限公司官网?  成都网站制作价格表,现在成都广电的单独网络宽带有多少的,资费是什么情况呢?  巅云智能建站系统:可视化拖拽+多端适配+免费模板一键生成  网站制作哪家好,cc、.co、.cm哪个域名更适合做网站?  ,在苏州找工作,上哪个网站比较好?  合肥制作网站的公司有哪些,合肥聚美网络科技有限公司介绍?  如何挑选优质建站一级代理提升网站排名?  如何快速搭建支持数据库操作的智能建站平台?  深圳网站制作平台,深圳市做网站好的公司有哪些?  如何在IIS7中新建站点?详细步骤解析  设计网站制作公司有哪些,制作网页教程?  潮流网站制作头像软件下载,适合母子的网名有哪些?  网站微信制作软件,如何制作微信链接?  如何快速搭建高效WAP手机网站吸引移动用户?  建站之星安全性能如何?防护体系能否抵御黑客入侵?  建站10G流量真的够用吗?如何应对访问高峰?  如何快速搭建高效WAP手机网站?  网页设计网站制作软件,microsoft office哪个可以创建网页?  已有域名如何免费搭建网站?  香港服务器网站卡顿?如何解决网络延迟与负载问题?  太原网站制作公司有哪些,网约车营运证查询官网?  湖北网站制作公司有哪些,湖北清能集团官网?  如何通过cPanel快速搭建网站?  如何快速搭建高效香港服务器网站?  网站图片在线制作软件,怎么在图片上做链接?  如何在建站之星网店版论坛获取技术支持?  建站之星备案流程有哪些注意事项?  建站之星logo尺寸如何设置最合适?  b2c电商网站制作流程,b2c水平综合的电商平台?  广东专业制作网站有哪些,广东省能源集团有限公司官网?  如何撰写建站申请书?关键要点有哪些?  建站之星下载版如何获取与安装?  建站VPS能否同时实现高效与安全翻墙? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。