首页 > 其他分享 >动态修改manifest.json

动态修改manifest.json

时间:2024-03-18 16:25:10浏览次数:20  
标签:const env baseUrl h5 修改 json ..... https manifest

点击查看代码
// 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值,代理指向对应的环境

标签:const,env,baseUrl,h5,修改,json,.....,https,manifest
From: https://www.cnblogs.com/zsnhweb/p/18080653

相关文章

  • dea设置自动编译spring boot代码,idea代码修改后无须重启服务立即生效
    解决办法1:spring-boot-devtools<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><scope>runtime</scope><......
  • 修改 /etc/resolv.conf
    修改/etc/resolv.conf/etc/resolv.conf是Linux系统中用于配置DNS解析器的文件。确认systemd-resolved或NetworkManager服务是否仍在管理DNS设置检查systemd-resolved服务的状态:systemctlstatussystemd-resolved如果服务正在运行,你会看到active(running)......
  • git diff 查看文件修改提示“new mode 100644”和“old mode 100755”(使用 vscode 查
    使用vscode查看不出差异通过gitgui或者通过gitbash查看文件内容并没有修改,出现这个问题的原因是修改了文件的权限,文件的filemode发生了变化,比如执行了chmod命令。解决办法:切换到项目的根目录,执行如下命令,忽略filemode的变化即可gitconfig--addcore.filemodefa......
  • FastJson反序列化3-1.2.25绕过
    在1.2.25中,主要添加了config.checkAutoType(typeName,null)函数,所以从这里开始查看检查逻辑;为了方便,先看POC;publicvoidbyPass1(){Strings1="{{\"@type\":\"java.lang.Class\",\"val\":\"com.sun.rowset.JdbcRowSetImpl\"},{......
  • FastJson反序列化2-1.2.24漏洞利用
    1、1.2.24漏洞利用-JNDI漏洞利用思路,如果某个类的set()方法中使用了JNDI,那么则可以使用JDNI注入执行任意命令。事实上在JDK8中就存在这样的类:JDBCRowSetImpl;该类实现了JdbcRowSwt接口,继承自BaseRowSet;packagecom.sun.rowset;其中setAutoCommit方法中的else分支调用了conn......
  • FastJson反序列化1-FastJson基础使用及反序列化流程分析
    1、FastJson简介及使用fastjson是阿里巴巴的开源JSON解析库,它可以解析JSON格式的字符串,支持将JavaBean序列化为JSON字符串,也可以从JSON字符串反序列化到JavaBean。1.1序列化JavaBean;假设现在程序中有一个类User,基本信息如下(省略构造方法及getset方法):packageorg.exampl......
  • unicloud update 修改
    update修改使用腾讯云时更新方法必须搭配doc、where方法使用,db.collection(‘test’).update()会报如下错误:paramshouldhaverequiredproperty‘query’collection.doc().update(Objectdata)未使用set、remove更新操作符的情况下,此方法不会删除字段,仅将更新数据......
  • go语言请求http接口示例 并解析json
    本例请求了天气api接口对接流程注册一个账号,对接免费实况天气接口阅读接口文档http://tianqiapi.com/index/doc?version=day请求接口解析json开发流程创建一个json.go文件需要引入的包import( "encoding/json" "fmt" "io/ioutil" "net/http")定义Wea......
  • 【WEEK3】 【DAY3】JSON交互处理第二部分【中文版】
    2024.3.13Wednesday接上文【WEEK3】【DAY2】JSON交互处理第一部分【中文版】目录6.4.代码优化6.4.1.乱码统一解决6.4.2.返回JSON字符串统一解决6.5.测试集合输出6.5.1.在UserController.java中添加一个新方法json26.5.2.运行6.6.输出时间对象6.6.1.在UserControlle......
  • mac电脑修改终端zsh显示的用户名
    电脑名称一直没有修改,所以电脑名称都是Apple的MacBookPro,如下图所示:mac电脑终端显示用户名太长一点也不美观,而且占用很长的行,浪费空间,可以通过修改来调整要显示什么内容:方式一要想换成自己定义的内容,只需要在~/.zshrc里面追加一行内容就好了。使用命令打开.zshrc文件:(没......