收藏
回答

微信小程序是否拥有环境变量?

框架类型 问题类型 操作系统 工具版本
小程序 需求 Windows 1.02.1807200

我们开发的时候,用的服务的域名跟发布后的域名不一样,不知道微信是否有环境变量可以直接用来区分不同的环境?

回答关注问题邀请回答
收藏

5 个回答

  • 欣欣向荣的万七七
    欣欣向荣的万七七
    2019-01-03

    我觉得最灵活的办法是还是自己准备一套简易打包机制,build时将环境变量写进全局中;

    如果不想打包,有一个不正统的办法,就是查询wx.getSystemInfo()里的platform,如果为'devtools'的话就表明是开发者工具环境,即develop。


    2019-01-03
    赞同 2
    回复 1
    • 小小生
      小小生
      2019-06-15

      这种预打包的方式 跟自己定义一个变量的方式差不多了,解决了手动改文件的方式,但是与真正的环境变量差距还是很大的。

      我们想要的环境变量跟发布到小程序后台的应该是有关系的, 比如  本地版(开发工具和真机调试), 体验版, 正式版(线上)

      2019-06-15
      回复
  • Can🌴
    Can🌴
    2018-07-26

    没有

    2018-07-26
    赞同
    回复 1
    • 小小生
      小小生
      2018-07-26

      以后会不会有?

      2018-07-26
      回复
  • 😱ི
    😱ི
    2019-06-11

    有全局变量,一般人我不告诉它

    2019-06-11
    赞同
    回复
  • Meゞ夨ヤ譩丨网站,App,小程序开发
    Meゞ夨ヤ譩丨网站,App,小程序开发
    2018-07-27

    我们是改本机hosts文件

    2018-07-27
    赞同
    回复
  • 罗思阳
    罗思阳
    2018-07-26

    我们使用的解决方案是:

    * 再封装了一个请求的 wx.request

    * 在封装内配置好api的地址

    * 使用封装的wx.request来请求数据,传递具体请求地址

    * 开发和发布对应只更改封装内部的api地址即可


    2018-07-26
    赞同
    回复 1
    • 小小生
      小小生
      2018-07-26

      我们现在 定义了一个 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 ....

      2018-07-26
      1
      回复
登录 后发表内容