uniapp微信小程序端:自定义环境配置以及线上版、体验版自动环境切换配置

针对暂时只上线微信小程序,但为了配合后续一套代码上线多个平台的需求,弃用微信原生小程序,选用uniapp框架的项目。
  • 一、自定义环境配置:uniapp多端兼容的特性,自定义的环境配置将提高不少效率,无需每次都切换域名等;
    1 在根目录创建package.json文件

    uni-app 通过在package.json文件中增加uni-app扩展节点,可实现自定义条件编译平台。

    2 配置文件内容,注意去掉所有注释!(在此主要是微信自定义环境配置,暂且不做平台配置)
    {
      /**
         * package.json其它原有配置 
         * 拷贝代码后请去掉注释!
         * 原有配置后的逗号别忘了
      */
      "uni-app": {
            "scripts": {
                "weixin:test": {
                    "title": "微信测试环境",
                    "env": {
                        "UNI_PLATFORM": "mp-weixin",
                        "ENV_PATH": "../env/dev.js"
                      },
                    "define": {
                        "WXCS-PLATFORM": true
                      }
                  },
                 "weixin:pro": {
                    "title": "微信生产环境",
                    "env": {
                        "UNI_PLATFORM": "mp-weixin",
                        "ENV_PATH": "../env/prod.js"
                      },
                    "define": {
                        "WXSC-PLATFORM": true 
                      }
                  }
            }
        }
    }
    
    3 根目录新增env文件创建dev.js、prod.js两个文件

    4 配置dev.js、prod.js文件内容
    dev.js
    prod.js

    5 来到你的api文件,定义baseUrl等环境变量的地方
let path =  process.env.ENV_PATH == undefined ? require('../env/dev.js')  : require(process.env.ENV_PATH)

var baseUrl = path.baseUrl
// let key = path.key
// let channelkey = path.channelkey

6 自定义环境变量完成 每次运行或发行,都只需点击对应的环境标题即可

运行

发行

  • 二、版本自动环境切换 微信小程序端线上版本是需要通过体验版来发布审核的,可这样一来,每次体验版和线上版都是同一个环境,需求更合理的是体验版-测试环境、线上版-正式环境,所以也需要在此配置一下。

    1 微信小程序官方文档:

Object wx.getAccountInfoSync()
获取当前帐号信息


2 条件编译

3 代码编写

let path =  process.env.ENV_PATH == undefined ? require('../env/dev.js')  : require(process.env.ENV_PATH)

// #ifdef MP-WEIXIN
    // ---------------- 根据微信开发环境配置请求地址 --------------------
    // 获取当前帐号信息
    const accountInfo = wx.getAccountInfoSync();
    console.log(accountInfo)
    // env类型 develop:开发版、trial:体验版、release:正式版
    const envWx = accountInfo.miniProgram.envVersion;
    if(envWx === 'release'){
        path = require('../env/prod.js')
    }else{
        path = require('../env/dev.js')
    }
// #endif

var baseUrl = path.baseUrl
// let key = path.key
// let channelkey = path.channelkey
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容