微信小程序:本地开发环境和线上环境配置

简介: 微信小程序:本地开发环境和线上环境配置

在开发微信小程序的时候,需要配置:

本地开发环境
体验预览环境
审核版环境
生产环境

为了简化环境配置,我只区分了两个环境

本地开发环境
生产环境/
  体验预览环境
  审核版环境
  生产环境

参考文档


环境区分原理: 使用wx.getSystemInfoSync() 的 host参数

host  Object  当前小程序运行的宿主环境  2.12.3

将配置文件放入一个目录中, 目录结构如下

config/
  ├── index.js  # 入口文件
  ├── env.js    # 环境获取
  ├── dev.js    # 开发环境配置
  └── pro.js    # 生产环境配置

env.js

/**
 * env
 */
export function getEnv() {
  let res = wx.getSystemInfoSync();
  // 客户端中host有值,本地开发的时候host为null
  if (res.host) {
    return 'pro';
  } else {
    return 'dev';
  }
}

dev.js

/**
 * dev
 */
export default {
  BASE_URL: 'http://127.0.0.1:8000/api',
};

pro.js

/**
 * pro
 */
export default {
  'BASE_URL': 'https://www.demo.com/api'
}

inde.js

/**
 * index
 */
import { getEnv } from './env.js';
import dev from './dev.js';
import pro from './pro.js';
const env = getEnv();
console.log('env', env);
let config = pro;
if (env == 'dev') {
  config = dev;
}
export default config;

其他方案

1、wx.getAccountInfoSync

参考文档:


实现代码

// 自动根据版本切换接口请求地址
  const { miniProgram: { envVersion } } = wx.getAccountInfoSync();
  let url = '';
  switch (envVersion) {
    case 'develop':
      url = `${defaultConfig.devUrl}${params.url}`;
      break;
    case 'trial':
      url = `${defaultConfig.devUrl}${params.url}`;
      break;
    case 'release':
      url = `${defaultConfig.prodUrl}${params.url}`;
      break;
    default:
      url = `${defaultConfig.baseUrl}${params.url}`;
      break;
  }

使用 wx.getAccountInfoSync 获取的环境,在开发、预览、生产都可以,不过在审核期间竟然没有生效,请求了’localhost’ 地址,审核人员看不到数据,导致审核不通过。

2、wx.getFileSystemManager

参考文档:


实现代码

let host = '';
let NODE_ENV = 'pro';
const fileManager = wx.getFileSystemManager();
try{
  fileManager.accessSync('/local.txt');
  NODE_ENV = 'dev';
}catch(e){}
if( NODE_ENV === 'pro' ){
  host = 'https://pro.qq.com';
}else{
  host = 'https://dev.qq.com';
}

这段代码遇到的问题是本地也获取不到local.txt 文件,所以暂时没有采用

相关文章
|
移动开发 JavaScript 小程序
uView ActionSheet 操作菜单
uView ActionSheet 操作菜单
337 1
|
存储 API Python
FastAPI(24)- 详解 File,上传文件
FastAPI(24)- 详解 File,上传文件
1328 0
FastAPI(24)- 详解 File,上传文件
|
缓存 Linux 开发工具
CentOS 7- 配置阿里镜像源
阿里镜像官方地址http://mirrors.aliyun.com/ 1、点击官方提供的相应系统的帮助 :2、查看不同版本的系统操作: 下载源1、安装wget yum install -y wget2、下载CentOS 7的repo文件wget -O /etc/yum.
255327 0
|
SQL 程序员
sql中的distinct用法
`DISTINCT`在SQL中用于返回唯一不同的值,消除结果集中的重复行。基本用法包括:1) 选择单列唯一值,如`SELECT DISTINCT department FROM employees;`
|
11月前
|
缓存 Linux 开发者
Avalonia开源控件库强力推荐-Semi.Avalonia
【11月更文挑战第3天】Semi.Avalonia 是一个基于 Avalonia 的开源控件库,提供了丰富的自定义控件和扩展功能。它支持多种样式按钮、高级输入控件和灵活的布局容器,简化了属性设置,并提供了详细的文档支持。Semi.Avalonia 还支持多种内置主题和自定义主题,具备高效的渲染机制和合理的资源管理,适用于跨平台桌面应用程序开发。
699 2
|
小程序 测试技术 开发者
微信小程序体验版(测试环境)和线上版(生产环境)发布
微信小程序体验版(测试环境)和线上版(生产环境)发布
2300 0
|
存储 资源调度 JavaScript
Vue3如何使用Pinia详细介绍、pinia持久化存储(pinia-plugin-persistedstate详细配置)
Vue3如何使用Pinia详细介绍、pinia持久化存储(pinia-plugin-persistedstate详细配置)
|
自然语言处理 语音技术 开发者
ChatTTS超真实自然的语音合成模型
ChatTTS超真实自然的语音合成模型
404 3
|
域名解析 网络协议 大数据
阿里云域名购买与域名解析使用教程(图文教程)
该文档是关于在阿里云注册账号、购买域名及进行DNS解析的步骤指南。首先,需注册阿里云账号并进行实名认证,建议选择企业认证以便获取企业发票。接着,通过阿里云域名注册页面检查并购买未被注册的域名,将域名添加至购物车并完成支付。购买后,在云解析DNS界面进行实名认证,然后对域名进行解析设置,选择A记录类型,填写主机记录(如www),记录值为云服务器的IP地址,设置TTL,并校验解析是否成功。最后,文中还提及了如何在云服务器上进行实例名称的修改和查看服务器状态等操作。
|
人工智能 Linux Windows
MoneyPrinterPlus全面支持本地Ollama大模型
现在,MoneyPrinterPlus除了支持大模型厂商的服务之外,还可以接入本地的Ollama大模型了。