最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Vue項目部署后提示刷新版本的實現(xiàn)代碼

 更新時間:2022年06月28日 09:56:08   作者:Gaby  
這篇文章主要給大家介紹了關于Vue項目部署后提示刷新版本的相關資料,文中通過實例代碼介紹的非常詳細,對大家學習或者使用vue具有一定的參考學習價值,需要的朋友可以參考下

vue項目部署新版本后,用戶如果不刷新頁面,可能會出現(xiàn)一些異常,需要刷新后才能正常使用,所以希望每次部署新版本后,提示用戶刷新瀏覽器。

之前看vue文檔,發(fā)現(xiàn)類似的功能。

查了好些資料,網(wǎng)上說的大部分也都是通過接口調(diào)用獲取版本號與本地版本號進行對比,然而我只想用純前端的方式,那該怎么做呢,實在不行就只能查資料自己開發(fā)個 webpack 插件進行處理了。

versionWebpackPlugin 主要代碼:

/***
 * title: versionWebpackPlugin.js
 * Author: Gaby
 * Email: 
 * Time: 2022-06-27 14:24
 * LastEditTime: 2022-06-27 14:24
 * LastEditors: Gaby
 * Description:
 */

const fs = require('fs');
const path = require('path');
const config = require('../package.json');
const readFile = filePath => fs.readFileSync(filePath, 'utf8');
const resolve = (...dir) => path.resolve(__dirname, '..', ...dir);
const resolveApp = (...dir) => resolve('src', ...dir);
const pluginName = 'versionWebpackPlugin';
const versionFileName = 'version.json';

class versionWebpackPlugin {
  apply(compiler) {
    // 1.自動注入到 webpack.entry
    compiler.options.entry.app.import = [
      ...compiler.options.entry.app.import,
      ...['./src/libs/version.js']
    ];

    // 2.將版本號寫入到 main 文件中
    compiler.hooks.beforeRun.tap(pluginName, () => {
      let content = readFile(resolve('build/', 'version.js'));
      let string = content.toString();
      string = string.replace(
        '{{currentVersion}}',
        config.version + '_' + Date.now()
      );
      string = string.replace(
        '{{VERSION_FILE_PATH}}',
        'static/' + versionFileName
      );
      fs.writeFile(resolve('src/libs/', 'version.js'), string, () => {
        // console.log('更新完成');
      });

      fs.writeFile(
        resolve('static/', versionFileName),
        '{\n' +
          '  "version": "' +
          config.version +
          '_' +
          Date.now() +
          '"\n' +
          '}',
        () => {
          // console.log('更新完成');
        }
      );
    });
}
module.exports = versionWebpackPlugin;

項目中使用的是 vue-cli5 進行創(chuàng)建的,配置文件要自行創(chuàng)建,要配置在 vue.config.js中,以下兩種引入方式均可。

const path = require('path');
// const versionPlugin = require('./build/version-webpack-plugin');

module.exports = {
  // 公共路徑(必須有的) 默認/
  publicPath: './',
  // 輸出文件目錄 默認dist
  outputDir: 'dist',
  // 靜態(tài)資源存放的文件夾(相對于outputDir) 默認根目錄
  assetsDir: 'static',
  // 生產(chǎn)環(huán)境SourceMap關
  productionSourceMap: false,
  // webpack 全局變量配置
  configureWebpack: {
    // plugins: [new versionPlugin()]
  },
  chainWebpack: config => {
    config
      .plugin('version-webpack-plugin')
      .use(require('./build/version-webpack-plugin'), [{}]);
  }
};

這里先拋個大概思路,看看小伙伴們是否能自行完成,新部署項目后,右下角彈出提示有新版本更新,點擊更新。

總結

到此這篇關于Vue項目部署后提示刷新版本的文章就介紹到這了,更多相關Vue提示刷新版本內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • vue截取視頻第一幀的圖片問題

    vue截取視頻第一幀的圖片問題

    這篇文章主要介紹了vue截取視頻第一幀的圖片問題,基本就是用cavas進行繪制,解決一下跨域問題,截視頻第一幀,然后根據(jù)視頻原本的寬高進行繪制,最后轉(zhuǎn)一下圖片格式即可,需要的朋友可以參考下
    2022-11-11
  • Vue代理報錯404問題及解決(vue配置proxy)

    Vue代理報錯404問題及解決(vue配置proxy)

    這篇文章主要介紹了Vue代理報錯404問題及解決(vue配置proxy),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • vue2.0與vue3.0及vue與react的區(qū)別及說明

    vue2.0與vue3.0及vue與react的區(qū)別及說明

    這篇文章主要介紹了vue2.0與vue3.0及vue與react的區(qū)別及說明,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-10-10
  • vue three.js創(chuàng)建地面并設置陰影實現(xiàn)示例

    vue three.js創(chuàng)建地面并設置陰影實現(xiàn)示例

    這篇文章主要為大家介紹了vue three.js創(chuàng)建地面并設置陰影實現(xiàn)示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-08-08
  • 簡單談談Vue3中的ref和reactive

    簡單談談Vue3中的ref和reactive

    vue3中實現(xiàn)響應式數(shù)據(jù)的方法是就是使用ref和reactive,所謂響應式就是界面和數(shù)據(jù)同步,能實現(xiàn)實時更新,下面這篇文章主要給大家介紹了關于Vue3中ref和reactive的相關資料,需要的朋友可以參考下
    2023-04-04
  • 詳解Vue中$refs和$nextTick的使用方法

    詳解Vue中$refs和$nextTick的使用方法

    這篇文章主要為大家介紹了Vue中$refs和$nextTick的使用方法,文中的示例代碼講解詳細,對我們學習Vue有一定幫助,需要的可以參考一下
    2022-03-03
  • 推薦VSCode 上特別好用的 Vue 插件之vetur

    推薦VSCode 上特別好用的 Vue 插件之vetur

    這篇文章主要介紹了推薦VSCode 上特別好用的 Vue 插件之vetur,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-09-09
  • vue插槽slot的理解和使用方法

    vue插槽slot的理解和使用方法

    這篇文章主要給大家介紹了關于vue中插槽slot的理解和使用方法,文中通過示例代碼介紹的非常詳細,對大家學習或者使用vue具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-04-04
  • Vue封裝通過API調(diào)用的組件的方法詳解

    Vue封裝通過API調(diào)用的組件的方法詳解

    在日常業(yè)務開發(fā)中我們會經(jīng)常封裝一些業(yè)務組件,下面這篇文章主要給大家介紹了關于Vue封裝通過API調(diào)用的組件的方法,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-12-12
  • Vue3+TypeScript實現(xiàn)遞歸菜單組件的完整實例

    Vue3+TypeScript實現(xiàn)遞歸菜單組件的完整實例

    Vue.js中的遞歸組件是一個可以調(diào)用自己的組件,遞歸組件一般用于博客上顯示評論,形菜單或者嵌套菜單,文章主要給大家介紹了關于Vue3+TypeScript實現(xiàn)遞歸菜單組件的相關資料,需要的朋友可以參考下
    2021-08-08

最新評論

古田县| 北辰区| 壶关县| 贵德县| 渑池县| 桐梓县| 宾川县| 增城市| 巩义市| 高唐县| 阿城市| 天津市| 绵阳市| 吴堡县| 常山县| 芷江| 盐池县| 华坪县| 宁安市| 大化| 宜宾县| 湖口县| 安多县| 田阳县| 红河县| 鄂托克旗| 汪清县| 亳州市| 彝良县| 佛学| 东阳市| 高要市| 湘乡市| 泸水县| 富顺县| 堆龙德庆县| 夏津县| 滨州市| 诸暨市| 建瓯市| 商水县|