Web前端(12)-vue代码读取package.json中的version

原因

我修改了vue的代码后,重新打包上传到服务器var/www上面,结果发现浏览器根本没有拉最新的网页,还是用的之前的。所以有点疑惑如何让浏览器加载最新的网页,而不是用缓存。

方案

找了一下AIGC,给的建议其中一个是用版本的方案来控制,因为vue的package.json中有一个version,所以可以直接修改,但是如何验证已经是最新的version的网页呢。

就需要网页中能够查看这个版本号。

实施

1、试错

开始AIGC让去直接js代码中读取package.json中的version,用客户端的思想想了一下感觉还可行,运行上去直接报找不到package.json文件,结果发现打包的文件根本就没有了package.json。

js 复制代码
 // const response = await axios.get('/config.json');
 // 打包后根本没有这个文件

AIGC还是坑啊。

2、正解

通过环境变量来控制。

在vue.config.js中配置如下:

js 复制代码
const webpack = require('webpack');//代码中获取package.json中的version
module.exports = defineConfig({
  configureWebpack: { 
    plugins: [ 
      new webpack.DefinePlugin({ 
        'process.env.VUE_APP_VERSION': JSON.stringify(require('./package.json').version) 
      }) 
    ] 
  } 
})

页面js中直接获取

js 复制代码
    const versionNumber = process.env.VUE_APP_VERSION; 
    console.log("version = ", versionNumber);
    version.value = versionNumber;

然后更新代码后就可以更新这个版本号,重新上传到服务器后,刷新网页就能看到当前是不是这个最新版本号,如果是就说明网页已经生效了。

相关推荐
一起养小猫12 小时前
Flutter for OpenHarmony 实战:从零开发一款五子棋游戏
android·前端·javascript·flutter·游戏·harmonyos
晚霞的不甘12 小时前
Flutter for OpenHarmony全面升级「今日运势」 应用的视觉与交互革新
前端·学习·flutter·前端框架·交互
学嵌入式的小杨同学13 小时前
【Linux 封神之路】文件操作 + 时间编程实战:从缓冲区到时间格式化全解析
linux·c语言·开发语言·前端·数据库·算法·ux
RFCEO13 小时前
学习前端编程:精准选中 HTML 元素的技巧与方法
前端·学习·css类选择器·兄弟元素选中·父子选中·关系选中·选择器选中
想睡好13 小时前
ref和reactive
前端·javascript·vue.js
霁月的小屋13 小时前
React 闭包陷阱深度解析
前端·javascript·react.js
tao35566713 小时前
【用AI学前端】HTML-01-HTML 基础框架
前端·html
晚霞的不甘13 小时前
Flutter for OpenHarmony智能穿搭推荐:构建一个实用又美观的个性化衣橱助手
前端·经验分享·flutter·ui·前端框架
毕设十刻13 小时前
基于Vue的餐厅收银系统s6150(程序 + 源码 + 数据库 + 调试部署 + 开发环境配置),配套论文文档字数达万字以上,文末可获取,系统界面展示置于文末
前端·数据库·vue.js
m0_6632340113 小时前
Python代码示例:数字求和实现
linux·服务器·前端