首页 > 其他分享 >vue项目部署添加时间

vue项目部署添加时间

时间:2023-11-12 16:55:39浏览次数:32  
标签:vue const 部署 buildTime fs json 添加 BuildTimePlugin data

const fs = require('fs'); const path = require('path'); const HtmlWebpackPlugin = require('html-webpack-plugin');
class BuildTimePlugin {   apply(compiler) {     const buildTime = +new Date()     compiler.hooks.beforeCompile.tapAsync('BuildTimePlugin', (params, callback) => {       const json = JSON.stringify({ buildTime });       const filePath = path.join('./public', 'buildTime.json');       fs.writeFile(filePath, json, { flag: 'w' }, callback);     });
    compiler.hooks.beforeCompile.tapAsync('BuildTimePlugin', (compilation, callback) => {       const scriptContent = `window.buildTime = ${buildTime};`;       const scriptPath = path.join('./public', 'buildTime.js');       fs.writeFile(scriptPath, scriptContent, { flag: 'w' }, callback);     });
    compiler.hooks.compilation.tap('BuildTimePlugin', (compilation) => {       HtmlWebpackPlugin.getHooks(compilation).beforeAssetTagGeneration.tapAsync(         'BuildTimePlugin',         (data, cb) => {           data.assets.js.unshift('/public/buildTime.js');           cb(null, data);         }       );     });   } }
module.exports = BuildTimePlugin;

// 使用方式( "html-webpack-plugin": "^5.5.3" 版本要更新,不然编译报错 )
const BuildTimePlugin = require('./plugin/buildTimePlugin'); plugins.push(new BuildTimePlugin())


// 页面中检查版本

fetch(location.origin+ '/buildTime.json').then(response => response.json()).then((data) => {
console.log(data);

if(data.buildTime > window.buildTime ) {
 // 当前不是最新,需要提示刷新
}

})



标签:vue,const,部署,buildTime,fs,json,添加,BuildTimePlugin,data
From: https://www.cnblogs.com/zerofan/p/17827377.html

相关文章

  • nginx.conf配置部署
    第一步:在前端路径的nginx目录下的conf目录下重命名备份下第二步:把文件nginx.conf通过ftp传出到system目录下第三步:进入对应主机:到system路径下 :sudo  cp  nginx.conf  对应前端路径的nginx目录下第三步:切换到对应的nginx目录下,进入sbin目录后,输入:sudo  ./nginx......
  • vue无法正确使用mastache渲染实例
    问题:<script>varvm=newvue({el:"#app",data:{message:"hello,vue!"}});</script>这段代码中,`vm`是通过`newVue()`创建的一个Vue实例。但是在HTML文件中,`<divid="app">`元......
  • Vue中的插槽
    插槽-默认插槽作用:让组件内部的一些结构支持自定义需求:要在页面中显示一个对话框,封装成一个组件,但是组件的内容部分,不是写死的,希望能使用时自定义。插槽的基本语法组件内需要定制的结构部分,改用<slot></slot>占位使用组件时,在组件中传入结构替换slot,例如<组件名>xxxxxx</组......
  • Vue 实验
    项目初始化#前提:包管理器安装vue-clivuecreate项目名称Vue2实验目的了解Vue2的组件实现机制数据绑定机制双向绑定:input单向绑定父组件→子组件:父组件传入的参数组件→用户:页面内部参数属性监听机制:被监听的参数实验内容实现一个简单的组件,体现......
  • vue自定义指令
    app.vue<template><divclass=""><!--自定义指令全局<inputv-focustype="text"name=""id=""><br>自定义指令局部<inputv-focus2type="text"name=""id="&......
  • Vue自定义指令
    自定义指令根据自定义的指令,可以封装一些dom操作,扩展额外的功能全局注册-语法全局注册是在min.js文件中去定义的Vue.directive('指令名',{//inserted:钩子是一个自定义指令的生命周期钩子函数之一。它会在被绑定的元素插入到父节点时调用。"inserted"(el){......
  • vue项目配置国际化
    1、安装vue-i18n+js-cookie插件npminstallvue-i18n-Snpminstalljs-cookie--save即在package.json中dependencies节点添加vue-i18n"vue-i18n":"7.3.2",2、配置多语言文件src目录下创建lang目录,存放国际化文件此处包含三个文件,分别是index.jszh.jsen.js//index.jsim......
  • Ruby 技术部署文档
    当你在部署一个Ruby应用程序时,你需要确保系统上安装了正确的软件和库以及正确的环境变量设置。以下是一个简单的Ruby技术部署文档示例:Ruby技术部署文档系统要求Ubuntu20.04LTSRuby2.6.3RubyGemsBundlerSQLite3(作为示例数据库)步骤1.安装Rubysudoaptupdatesudoapti......
  • 部署自己的在线管理系统
    B/S架构的管理系统因其使用和维护的便利性而成为了目前管理系统的主流,但通常都是企业自研或定制开发的系统。那么,对于众多的中小企业或个人,是否能低成本地拥有自己的在线管理系统呢?答案是可以的。目前有一些支持私有化部署的管理系统,可以由用户自行安装部署到自己的云服务器上,这......
  • 聊聊魔塔社区MGeo模型的部署与运行
    从现今与今后的发展来看,单一的业务不再仅仅依靠于传统的技术开发,而是应该结合AI模型来应用、实践。只有这样,才能更数智化,更高效化,更贴合时代的发展。魔塔社区就类似国外的HuggingFace,是一个模型即服务的运行平台。在这个平台上运行着很多的大模型示例,网站直接提供了试运行的......