当前位置:首页 > uni-app

uniapp多环境配置

2026-02-05 16:45:18uni-app

多环境配置方法

在UniApp中实现多环境配置(如开发、测试、生产环境)可通过以下方式实现:

1. 使用process.env.NODE_ENV区分环境 UniApp基于Vue CLI,默认支持通过process.env.NODE_ENV获取当前环境变量:

// 获取当前环境
const env = process.env.NODE_ENV; // development/production

// 示例配置
const configs = {
  development: {
    baseUrl: 'http://dev.example.com'
  },
  production: {
    baseUrl: 'https://prod.example.com'
  }
}
export default configs[env]

2. 自定义环境变量 在项目根目录创建.env文件(开发环境)和.env.production文件(生产环境):

# .env 开发环境
VUE_APP_API_BASE=http://dev.example.com
VUE_APP_ENV=development

# .env.production 生产环境
VUE_APP_API_BASE=https://prod.example.com
VUE_APP_ENV=production

通过process.env.VUE_APP_*访问变量:

console.log(process.env.VUE_APP_API_BASE)

3. 通过manifest.json配置src/manifest.json中配置不同环境的参数:

{
  "name": "app-name",
  "appid": "",
  "description": "",
  "versionName": "1.0.0",
  "versionCode": "100",
  "uni-app": {
    "scripts": {
      "dev": {
        "title": "开发环境"
      },
      "test": {
        "title": "测试环境"
      }
    }
  }
}

4. 条件编译实现环境区分 使用#ifdef条件编译语法:

// #ifdef H5
console.log('Web环境')
// #endif

// #ifdef MP-WEIXIN
console.log('微信小程序环境')
// #endif

5. 动态配置文件 创建config.js动态加载配置:

// config.js
const env = process.env.VUE_APP_ENV || 'development'

const configMap = {
  development: {
    baseUrl: 'http://dev.api.com'
  },
  production: {
    baseUrl: 'https://api.com'
  }
}

export default configMap[env]

打包命令配置

package.json中配置不同环境的打包命令:

uniapp多环境配置

{
  "scripts": {
    "dev": "cross-env NODE_ENV=development uni-cli-service serve",
    "build:prod": "cross-env NODE_ENV=production uni-cli-service build",
    "build:test": "cross-env NODE_ENV=test uni-cli-service build"
  }
}

注意事项

  1. 所有VUE_APP_开头的变量会被自动加载,其他变量需要手动配置
  2. 修改环境变量后需要重新编译项目
  3. 小程序端环境变量需要通过uni.getSystemInfoSync()等API动态获取
  4. 生产环境配置需要谨慎处理敏感信息

标签: 环境uniapp
分享给朋友:

相关文章

uniapp 消息推送

uniapp 消息推送

uniapp 消息推送实现方法 使用uniPush服务 uniapp官方提供了uniPush服务,支持iOS、Android及小程序平台的消息推送。需要在manifest.json中配置推送模块,并按…

uniapp树形选择

uniapp树形选择

uniapp树形选择实现方法 使用uni-data-checkbox组件 uniapp内置的uni-data-checkbox组件支持树形结构选择,适用于多级分类场景。配置时需要将数据格式化为树形结构…

uniapp组件

uniapp组件

uniapp组件基础概念 uniapp的组件系统基于Vue.js,支持跨平台开发(H5、小程序、App等)。组件分为内置基础组件(如<view>、<button>)和自定义组件…

uniapp前端项目

uniapp前端项目

Uniapp 前端项目开发指南 Uniapp 是一个基于 Vue.js 的跨平台开发框架,支持一次开发,多端发布(如微信小程序、H5、App 等)。以下是关于 Uniapp 前端项目的关键信息: 环…

uniapp swiper禁止滑动

uniapp swiper禁止滑动

禁用 Swiper 滑动的方法 在 UniApp 中,可以通过设置 disableTouch 属性或动态绑定 touchable 属性来禁止 Swiper 组件的滑动行为。 方法一:通过 disab…

uniapp gpio

uniapp gpio

在 uniapp 中直接操作 GPIO(通用输入输出)通常需要依赖原生平台的硬件接口,因为 uniapp 本身是基于前端技术的跨平台框架,不直接提供硬件访问能力。以下是实现 GPIO 控制的几种方法:…