动态修改manifest.json
点击查看代码
// h5开发环境
const h5Dev = {
baseUrl: 'https://devh5.....'
}
// h5测试环境
const h5Test= {
baseUrl: 'https://testh5.....'
}
// h5生产环境
const h5Prod= {
baseUrl: 'https://prodh5.....'
}
// 微信小程序开发环境
const mpWeixinDev = {
baseUrl: 'https://devwx.....'
}
// 微信小程序测试环境
const mpWeixinTest= {
baseUrl: 'https://testwx.....'
}
// 微信小程序生产环境
const mpWeixinProd= {
baseUrl: 'https://productionwx.....'
}
// app开发环境
const appDev = {
baseUrl: 'https://devApp.....'
}
// app测试环境
const appTest= {
baseUrl: 'https://testApp.....'
}
// app生产环境
const appProd= {
baseUrl: 'https://productionApp.....'
}
const envConfig = {
'h5-dev':h5Dev,
'h5-test':h5Test,
'h5-prod':h5Prod,
'mp-weixin-dev':mpWeixinDev,
'mp-weixin-test':mpWeixinTest,
'mp-weixin-prod':mpWeixinProd,
'app-dev':appDev,
'app-test':appTest,
'app-prod':appProd,
}
module.exports=envConfig
const fs = require('fs')
//自定义的环境变量根据实际对应路径引入
const envConfig=require('./config/env.js')
//读取manifest.json内容
fs.readFile(`${__dirname}/manifest.json`, (error, res)=> {
if (!error) {
let data = JSON.parse(res.toString());
//此时process.env.ENV_TYPE依然无法读取到但是可以读取process.env.UNI_SCRIPT,该值为自定义编译平台配置字段名称,这就是上面取字段时候要求和自定义编译平台字段一样原因
let env =process.env.UNI_SCRIPT
if (env&&env.includes('h5')) {
if ( data?.h5?.devServer?.proxy) {
let proxy= data.h5.devServer.proxy
for (let key in proxy) {
proxy[key].target =envConfig[env].baseUrl
}
// console.log(JSON.stringify(data.h5),'proxy')
//重新写入修改后内容
fs.writeFile(
`${__dirname}/manifest.json`,
JSON.stringify(data),
{
encoding: 'utf-8'
},
(error)=>{
if (error) {
console.log(error,'修改失败')
} else {
console.log('修改成功')
}
}
)
}
}
}
})
2.vue.config.js引入modifyManifest.js
vue.config.js(没有该文件新建,位于项目根目录)新增:
注意:兼容性写法此处用require非import
至此,每次通过运行-编译不同的环境,编辑器会动态修改manifest.json-target值,代理指向对应的环境
动态修改manifest.json的更多相关文章
- .net core WebAPI+EF 动态接收前台json,并动态修改数据库
用API开发的人都知道,常用的后台接收参数就是建个DTO,然后前台把这个DTO传过来.后台再更新,例如如下例子: public async Task<IActionResult> PutM ...
- uni-app动态修改顶部导航栏标题
动态修改顶部导航栏标题有两种方法方式一.使用自定义到导航栏,覆盖原生导航栏 缺点:自定义到导航栏性能远远不如原生导航栏,手机顶部状态栏区域会被页面内容覆盖,这是因为窗体是沉浸式的原因,即全屏可写内容: ...
- react+antd 使用脚手架动态修改主题色
最近做了一个需求,后台管理系统添加一个可以动态修改ant-design主题色.查询了大多数的文章,发现基本都是抄来抄去,而且文章记录的也一点也不详细.刚刚把这个功能做完了,顺便记录一下如何去修改主题色 ...
- 动态修改 NodeJS 程序中的变量值
如果一个 NodeJS 进程正在运行,有办法修改程序中的变量值么?答案是:通过 V8 的 Debugger 接口可以!本文将详细介绍实现步骤. 启动一个 HTTP Server 用简单的 Hello ...
- ArcGIS Server 10.2 实战(二)动态修改要素数据的地理处理服务
上一篇<ArcGIS Server 10.2 实战(一)Asp.net MVC与JSON数据妙用实现动态生成要素图层>介绍了如何用JSON转要素的地理处理服务,实现了动态创建点要素并加载到 ...
- OpenLayers学习笔记(十)— 动态加载JSON数据模拟航迹线
在openlayers 3 上,加载本地json数据,动态绘制航迹线,以飞机当前位置为地图中心,此例子是模拟DEMO 本文链接:动态加载JSON数据模拟航迹线 作者:狐狸家的鱼 GitHub:八至 前 ...
- 微信小程序换皮肤,动态切换菜单栏和导航栏的样式,动态修改TabBar和NavigationBar
在做微信小程序换皮肤的时候,需要动态修改菜单栏(TabBar)和导航栏(NavigationBar) 但是在小程序中它们的样式是写在app.json里面,而且app.json是静态编译,运行时哪怕你修 ...
- 微信小程序开发小技巧——单击事件传参、动态修改样式、轮播样式修改等
一. 脚本部分: 1. 表达式无效的处理: 如果你发现自己编写的表达式无效或者数据不展示,那么请先检查你的表达式是否有添加{{}},小程序中全部都要添加的,只要是在模板中调用js中的数据 2. 获取元 ...
- SpringBoot系列十一:SpringBoot整合Restful架构(使用 RestTemplate 模版实现 Rest 服务调用、Swagger 集成、动态修改日志级别)
声明:本文来源于MLDN培训视频的课堂笔记,写在这里只是为了方便查阅. 1.概念:SpringBoot整合Restful架构 2.背景 Spring 与 Restful 整合才是微架构的核心,虽然在整 ...
- Java Agent初探——动态修改代码
用了一下午总算把java agent给跑通了,本篇文章记录一下具体的操作步骤,以免遗忘... 通过java agent可以动态修改代码(替换.修改类的定义),进行AOP. 目标: ? 1 为所有添加@ ...
随机推荐
- #BFS,二进制#CF1776J Italian Data Centers
洛谷题面 CF1776J 分析 将原图的点所拆开的点按二进制编号,那么同一个点之间连边当且仅当恰好一个二进制位不同, 不同点之间连边颜色相同则其二进制相同,否则完全相反. 可以钦定起点就是 \((x, ...
- #Every-SG#HDU 3595 GG and MM
题目 有\(n\)个游戏,每个游戏只要能进行就必须进行, 对于每个游戏有两堆石子,每次可以将数量多的中取出小堆石子数量的整数倍, 无法操作者为负,问先手是否必胜 分析 如果单个游戏最大操作次数为奇数次 ...
- 基于HANA重构业务的总结
本文于2019年7月29日完成,发布在个人博客网站上. 考虑个人博客因某种原因无法修复,于是在博客园安家,之前发布的文章逐步搬迁过来. 依据领导的规划,本月启动了一项业务迁移工作,作为特别行动,部门安 ...
- OpenHarmony装饰指定自定义组件:@BuilderParam装饰器
当开发者创建了自定义组件,并想对该组件添加特定功能时,例如在自定义组件中添加一个点击跳转操作.若直接在组件内嵌入事件方法,将会导致所有引入该自定义组件的地方均增加了该功能.为解决此问题,ArkUI ...
- 直播预告丨 Hello HarmonyOS 进阶课程第五课——原子化服务
本周三<Hello HarmonyOS 系列应用篇:原子化服务>,HDE 李洋老师将带领大家了解 HarmonyOS 原子化服务的技术特性与创新性,对智能家居.智慧出行.运动健康.智慧办公 ...
- 重新整理数据结构与算法(c#)—— 算法套路动态规划算法[二十六]
前言 动态规划算法的核心思想是:将大问题划分为小问题进行解决,从而一步步获取最优解的处理算法. 这样一听和分治算法有点相似啊. 是的,分治算法也是将大问题分为小问题,但是他们毕竟不同,不同之处在什么地 ...
- Scratch3自定义积木块之新增积木块
在Scratch3.0的二次开发中,新功能的研发和扩展离不开积木块的添加,这篇主要讲解Scratch3.0中新增积木块部分 Scratch3.0中对于新增积木块有两种方式: 1. 初始化积木块方式 ...
- python实现快排算法,传统快排算法,数据结构
def quick_sort(lists,i,j): if i >= j: return list pivot = lists[i] low = i high = j while i < ...
- 他来了他来了,.net开源智能家居之苹果HomeKit的c#原生sdk【Homekit.Net】1.0.0发布,快来打造你的私人智能家居吧
背景介绍 hi 大家好,我是三合,作为一个非著名懒人,每天上完班回到家,瘫在沙发上一动都不想动,去开个灯我都嫌累,此时,智能家居拯救了我,只需要在手机点点点,开关灯,空调,窗帘就都搞定了,一开始我用的 ...
- 关于console.log中this指向的问题