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

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

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

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

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

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

参考文档


环境区分原理: 使用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 文件,所以暂时没有采用

相关文章
|
网络安全 开发工具 git
git 出现错误:kex_exchange_identification: read: Connection reset by peer fatal
git 出现错误:kex_exchange_identification: read: Connection reset by peer fatal
git 出现错误:kex_exchange_identification: read: Connection reset by peer fatal
|
5月前
|
人工智能 Linux API
5分钟拥有龙虾AI员工!OpenClaw喂饭级全平台部署步骤(阿里云/Win11/MacOS/Linux)+3大免费模型配置+FAQ
“想要能处理邮件、管理日程、写代码的AI助手,又担心数据泄露?”——2026年,由PSPDFKit创始人Peter Steinberger开发的OpenClaw(昵称“龙虾AI”)完美解决了这一痛点。作为开源个人AI助手的标杆,它打破传统AI“只聊天不干活”的局限,能真正执行具体任务,且所有数据本地处理,隐私完全可控;同时支持MiniMax、Claude、阿里云百炼等多模型自由切换,兼容微信、Telegram、飞书等主流聊天工具,搭配100+可扩展技能,成为兼顾实用性与隐私性的首选工具。
834 1
|
5月前
|
人工智能 安全 开发工具
VS2026下载 | Visual Studio 2026官网最新版安装使用教程(新手必看)
Visual Studio 2026是微软新一代智能IDE,深度融合AI辅助(精准补全、智能纠错、自动重构)、跨平台开发(Windows/macOS/Linux/移动)、云原生(Azure深度集成)及团队协作能力,支持C/C++、.NET、Python等多语言,大幅提升开发效率与质量。(239字)
|
前端开发
文字显示在div 最下面,css怎么写
文字显示在div 最下面,css怎么写
780 0
|
缓存 并行计算 前端开发
《十万线段绘乾坤:Canvas离屏渲染深度剖析》
本文聚焦Canvas绘制10万条动态线段时的帧率暴跌问题,深入解析离屏渲染的解决方案。常规渲染因高频实时绘制易超屏幕刷新时间窗口,导致卡顿。离屏渲染通过独立缓冲区预先绘制完整帧,再一次性输出到屏幕,减少实时绘制次数,利用GPU并行计算提升效率。文中还介绍了缓冲区规划、缓存机制、双缓冲协调等应用策略,以及应对资源消耗、上下文切换等挑战的方法,为前端开发者处理复杂图形绘制提供了关键技术指引。
465 0
|
Web App开发 存储 人工智能
3D/XR线上展厅实时云渲染平台搭建方案
在数字化浪潮下,传统3D展厅面临高成本、维护难、兼容性差等问题。实时云渲染技术革新展览展示行业,通过云端渲染和超低延迟视频流推送,用户可使用XR设备沉浸式体验云展厅。结合VR/AR/AI技术,提供智能导览、展品推荐等功能,分析观众行为数据优化展览内容。该方案支持多平台访问,已在杭州亚运会等大型活动应用,极大降低参会门槛,提升传播和营销效果。平行云的实时云渲染技术支持低成本搭建在线展览平台,助力实现一机逛遍博物馆的美好愿景。
|
资源调度 容器
echarts:nuxt项目使用echarts
echarts:nuxt项目使用echarts
599 0
|
安全 关系型数据库 MySQL
分享一个 MySQL 简单快速进行自动备份和还原的脚本和方法
分享一个 MySQL 简单快速进行自动备份和还原的脚本和方法
890 0