小程序
小游戏
企业微信
微信支付
扫描小程序码分享
我们开发的时候,用的服务的域名跟发布后的域名不一样,不知道微信是否有环境变量可以直接用来区分不同的环境?
6 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
没有
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
以后会不会有?
我觉得最灵活的办法是还是自己准备一套简易打包机制,build时将环境变量写进全局中;
如果不想打包,有一个不正统的办法,就是查询wx.getSystemInfo()里的platform,如果为'devtools'的话就表明是开发者工具环境,即develop。
这种预打包的方式 跟自己定义一个变量的方式差不多了,解决了手动改文件的方式,但是与真正的环境变量差距还是很大的。
我们想要的环境变量跟发布到小程序后台的应该是有关系的, 比如 本地版(开发工具和真机调试), 体验版, 正式版(线上)
难搞,最好引入工程化工具来帮助实现。不然像workerjs里的文件不能去引入js,就没有办法了。
有全局变量,一般人我不告诉它
我们是改本机hosts文件
我们使用的解决方案是:
* 再封装了一个请求的 wx.request
* 在封装内配置好api的地址
* 使用封装的wx.request来请求数据,传递具体请求地址
* 开发和发布对应只更改封装内部的api地址即可
我们现在 定义了一个 settings 类, 里面是各个API的 baseUrl (schema + domin), 然后我们用 Typescript 重写了一个 WebClient 类 (目的是 Promise<T> 和 async/await), 而 webClient 初始化的时候 放入 baseUrl , 也就是 settings 里面定义的, 而且 setting 里面导出的时候是根据 一个变量来 导出的, 基本上实现了 部分 环境变量的功能, 不过唯一的缺点就是 不是自动的, 对我们的源代码管理来说很不友好, 开发的时候和发布测试的时候 总得来回改这个 settings 里面的变量。 最好的解决方案是 微信本身存在一个环境变量: let env = wx.environment[`environment`] // env = `production` , 这个可以用来区分不同的环境 wx.environment[`wechat-version`] //6.6.7 wx.environment[`platform`] // andorid wx.environment[`platform-version`] //8.0 ....
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
没有
以后会不会有?
我觉得最灵活的办法是还是自己准备一套简易打包机制,build时将环境变量写进全局中;
如果不想打包,有一个不正统的办法,就是查询wx.getSystemInfo()里的platform,如果为'devtools'的话就表明是开发者工具环境,即develop。
这种预打包的方式 跟自己定义一个变量的方式差不多了,解决了手动改文件的方式,但是与真正的环境变量差距还是很大的。
我们想要的环境变量跟发布到小程序后台的应该是有关系的, 比如 本地版(开发工具和真机调试), 体验版, 正式版(线上)
难搞,最好引入工程化工具来帮助实现。不然像workerjs里的文件不能去引入js,就没有办法了。
有全局变量,一般人我不告诉它
我们是改本机hosts文件
我们使用的解决方案是:
* 再封装了一个请求的 wx.request
* 在封装内配置好api的地址
* 使用封装的wx.request来请求数据,传递具体请求地址
* 开发和发布对应只更改封装内部的api地址即可
我们现在 定义了一个 settings 类, 里面是各个API的 baseUrl (schema + domin), 然后我们用 Typescript 重写了一个 WebClient 类 (目的是 Promise<T> 和 async/await), 而 webClient 初始化的时候 放入 baseUrl , 也就是 settings 里面定义的, 而且 setting 里面导出的时候是根据 一个变量来 导出的, 基本上实现了 部分 环境变量的功能, 不过唯一的缺点就是 不是自动的, 对我们的源代码管理来说很不友好, 开发的时候和发布测试的时候 总得来回改这个 settings 里面的变量。 最好的解决方案是 微信本身存在一个环境变量: let env = wx.environment[`environment`] // env = `production` , 这个可以用来区分不同的环境 wx.environment[`wechat-version`] //6.6.7 wx.environment[`platform`] // andorid wx.environment[`platform-version`] //8.0 ....