vue3项目发布后修改配置文件仍然生效

使用json,并且要用ajax来加载;应用过程中也有一些注意的问题。

有关“vue3项目发布后修改配置文件仍然生效”问题,之前做过一篇笔记《vue项目读取全局配置》。但事实上,那篇笔记的步骤,只解决了项目发布后,配置文件没有被压缩,仍然可见可编辑的问题;但配置文件编辑保存后,并没有生效,也就是说,改了也是白改,一点意义都没有。

那篇笔记中,配置文件是js文件,使用import的方式。结果项目发布后,估计打包程序做了处理,直接将里面的内容读出来,内联到每个使用它的组件中去了,所以后面再改配置文件不会起作用。

vue发布时,应该是可以指定参数,使用不同的配置文件发布。但这总比不上可以修改配置文件方便。你总不能,因为生产环境有所改变,又重新发布一个吧。一是不方便,二是有时做不到。所以还是要看看,如何做到发布以后,还能修改配置文件。

一种方法是改用json作为配置文件,然后在项目中使用ajax或者require的方式对它进行读取。具体如下:

1、创建配置文件
2、在主程序中读入配置文件
3、组件中使用配置
4、库类型文件使用require方式读入配置

1、创建配置文件

在项目的public目录下创建一个json文件作为配置文件,如命名为web-config.json。网上有文章说不要将配置文件命名为config.json,也没说明理由。因为时间有限,姑妄听之,我在前面加了个“web-"前缀。内容比如:

public/web-config.json

{"app": {"name": "订餐拿饭抓阄系统","owner": "大甲研究院","developer": "乙丙丁有限公司"},"server": "http://10.0.1.8:8090","power": {"minA": 0,"maxA": 5000,"defaultMinA": 1000,"defaultMaxA": 2500}
}

2、在主程序中读入配置文件

main.js

import axios from "axios";// 使用配置
loadConfig().then((config) => {const app = createApp(App);app.use(store).use(router).mount("#app");app.provide("globalConfig", config);
});// 加载配置
async function loadConfig() {const response = await axios.get("/web-config.json");return response.data;
}

3、组件中使用配置

在main.js中,使用了provide的方式,共享了配置。

app.provide("globalConfig", config);

所以在组件中,很自然就用inject的方式注入配置:

import { inject } from "vue";const appConfig = inject("globalConfig");

4、库类型文件使用require方式读入配置

3是在组件中,即*.vue文件中使用。如果是类似库文件这类的js,该如何使用这些配置?答案是需要直接require该配置文件。也就是说,无法享用共享的配置,需要自己再次读取。如:

vue.config.js

const appConfig = require("./public/web-config.json");

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/85981.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【工具插件类教学】三种常用日期选择UI控件工具

目录 一. DataPicker的简介 二. DateTimePicker的简介 ​三. FlatCalendar的简介 一. DataPicker的简介 一种是常显,一种是按钮控制显示逻辑,可以设置年,月,日。并输出结果

Ubuntu 22.04 快速安装 MySQL 数据库 8.0

Ubuntu 22.04 快速安装 MySQL 数据库 8.0 1. 安装 MySQL2. 配置 MySQL2.1 公网访问2.2 添加用户2.2.1 切换 root 用户2.2.2 链接 MySQL2.2.3 添加新的 MySQL 用户2.2.4 退出 MySQL2.2.5 退出 root 用户 2.3 测试新用户 1. 安装 MySQL sudo apt install mysql-server-8.02. 配置…

【Vue3 源码解析】reactive 全家桶

// 泛型约束&#xff1a;只能传入引用类型 export function reactive<T extends object>(target: T): UnwrapNestedRefs<T> // 判断只读&#xff0c;否则创建reactive响应式对象 export function reactive(target: object) {// if trying to observe a readonly pr…

求生之路2服务器搭建插件安装及详细的游戏参数配置教程windows

求生之路2服务器搭建插件安装及详细的游戏参数配置教程windows 大家好我是艾西&#xff0c;最近研究了下 l4d2&#xff08;求生之路2&#xff09;这款游戏的搭建以及架设过程。今天就给喜欢l4d2这款游戏的小伙伴们分享下怎么搭建架设一个自己的服务器。毕竟自己当服主是热爱游…

Unity Bolt 实现UI拖拽功能

最近在学习使用Bolt插件实现五代码对UGUI Image元素实现拖拽。先看效果 录制_2023_09_15_17_50_45_29 下面是实现方式介绍&#xff1a; 1&#xff1a;注册RectTransformUtility 在使用Bolt插件实现UI拖拽的功能&#xff0c;需要使用 RectTransformUtility.ScreenPointToLoca…

数据分析总结

数据分析 AB检测 AB检测&#xff0c;也称为AB测试&#xff0c;是一种在线实验的方法&#xff0c;用于比较两个或多个版本的网页或应用程序的效果&#xff0c;以确定哪个版本能够更好地实现预期的目标&#xff0c;例如提高用户转化率、点击率、留存率等。AB检测的流程大致如下…

【微信小程序】文章设置

设置基本字体样式&#xff1a;行高、首行缩进 font-size: 32rpx;line-height: 1.6em;text-indent: 2em;padding: 20rpx 0;border-bottom: 1px dashed var(--themColor); 两端对齐 text-align: justify; css文字两行或者几行显示省略号 css文字两行或者几行显示省略号_css…

go-redis简单使用

目录 一&#xff1a;官方文档和安装方式二&#xff1a;简单案例使用 一&#xff1a;官方文档和安装方式 官方中文文档&#xff1a;https://redis.uptrace.dev/zh/guide/go-redis.html安装&#xff1a;go get github.com/redis/go-redis/v9 二&#xff1a;简单案例使用 简单的…

Verilog 不同编码风格对综合电路的影响

文章目录 示例 #1示例 #2示例 #3 Verilog是一种硬件描述语言&#xff08;HDL&#xff09;&#xff0c;用于设计数字电路和系统。统一、良好的代码编写风格&#xff0c;可以提高代码的可维护性和可读性。 同样的功能&#xff0c;不同的Verilog 编码风格也会对综合过程产生重大影…

java框架-Springboot3-基础特性+核心原理

文章目录 java框架-Springboot3-基础特性核心原理profiles外部化配置生命周期监听事件触发时机事件驱动开发SPISpringboot容器启动过程自定义starter java框架-Springboot3-基础特性核心原理 profiles 外部化配置 生命周期监听 事件触发时机 事件驱动开发 Component public c…

requests爬虫详解

Requests 安装 pip install requests 示例 from fake_useragent import UserAgent import requestsdef cra1_1(): url http://xx/front/website/findAllTypes headers {User-Agent: UserAgent().chrome} resp requests.get(url, headersheaders) result resp.json()i…

Linux下du指令详情介绍

磁盘空间使用统计&#xff0c;方便排行哪些文件占用内存大 1.统计指定目录磁盘空间使用情况 du 目录路径2.可读形式 du -h 目录路径3.显示所有文件和目录的磁盘使用情况 du -a [目录路径]4.仅统计目录的磁盘空间使用情况&#xff0c;不包括子目录&#xff1a; du -S [目录路…

Windows利用Docker开发miniob

拉取github代码 找个文件夹Git Bash # 将代码拉到本地 git clone https://github.com/oceanbase/miniob -b miniob_test 利用Dockerfile构建 用powershell运行 #到存放刚下载代码的文件夹(填写自己存放的路径) cd /xxx/xxx # build docker build -t miniob . build的时候…

Vue的详细教程--Vue路由与nodejs

&#x1f973;&#x1f973;Welcome Huihuis Code World ! !&#x1f973;&#x1f973; 接下来看看由辉辉所写的关于Vue的相关操作吧 目录 &#x1f973;&#x1f973;Welcome Huihuis Code World ! !&#x1f973;&#x1f973; 一.Vue路由是什么 二.使用Vue路由的步骤 1、…

vue使用其他组件弹窗(新增编辑)

1. 定义组件 import form from "../form/index.vue" //组件路径 export default {components: {WebSecurityLogForm: form, //引用组件},2. 使用组件 <!-- 表单 --><WebSecurityLogForm:open.sync"open" :id.sync"id" :disabled&quo…

[学习记录] 设计模式 3. 观察者模式

观察者模式 参考&#xff1a; bugstack 虫洞栈Refactoringhttps://www.cnblogs.com/myseries/p/8735490.htmlhttps://www.jianshu.com/p/4f1cd513a72d 当一个行为发生时传递信息给另外一个用户接收做出相应的处理&#xff0c;两者之间没有直接的耦合关联。 在我们编程开发中也…

Hutool工具包:http客户端工具(使用教程)

目录 一、Hutool介绍 二、笔者的话 三、引入依赖 四、大致步骤 五、GET请求 5.1 代码 5.2 结果展示 六、POST请求 6.1 代码一&#xff08;Form Data类型参数&#xff09; 6.2 结果展示 6.3 代码二&#xff08;Form Data类型参数 - 含上传文件&#xff09; 6.4 结果…

开发高性能知识付费平台:关键技术策略

引言 在构建知识付费平台时&#xff0c;高性能是确保用户满意度和平台成功的关键因素之一。本文将探讨一些关键的技术策略&#xff0c;帮助开发者打造高性能的知识付费平台。 1. 前端性能优化 使用CDN加速资源加载 使用内容分发网络&#xff08;CDN&#xff09;来托管和加…

服务器搭建(TCP套接字)-select版(服务端)

一、select头文件 #include <sys/select.h>二、select原型 int select(int nfds, fd_set *readfds, fd_set *writefds,fd_set *exceptfds, struct timeval *timeout);select() 是一个系统调用函数&#xff0c;用于在多个文件描述符上进行 I/O 多路复用。通过 select() …

JavaWeb后端开发 JWT令牌解析 登录校验 通用模板/SpringBoot整合

目录 实现思路 会话跟踪的三个方案--引出Jwt令牌技术 1.访问cookie的值,在同一会话的不同请求之间共享数据 2.session 3.现代普遍采用的令牌技术--JWT令牌 JWT令牌技术 ​第一步--生成令牌 1.引入依赖 2.生成令牌 第二步--校验令牌 第三步--登录下发令牌 需要解决的…