uniapp 配置多环境

8 篇文章 0 订阅

引言

在项目开发中,往往需要根据当前环境配置不同的参数,直接在文件中修改效率不高,因此需要集中管理不同环境的变量,本文章针对由 HBuilderX 生成的 uniapp 项目

根据 HBuilderX 判断当前环境

在 HBuilderX 中点击运行,当前环境为开发环境,点击发布,则为生产环境
创建三个文件,分别为 .env.js ,.env.dev.js ,.env.prod.js

.env.dev.js

const UNI_APP = {
	UNI_BASE_API: 'dev-api', // 基准路径
	UNI_BASE_ENV: 'dev', // 环境变量
	UNI_BASE_URL: '/', // 打包路径 
	...
}

module.exports = UNI_APP;

.env.prod.js

const UNI_APP = {
	UNI_BASE_API: 'prod-api', // 基准路径
	UNI_BASE_ENV: 'prod', // 环境变量
	UNI_BASE_URL: '/', // 打包路径 
	...
}

module.exports = UNI_APP;

.env.js

let ENV_CONFIG = null;

if (process.env.NODE_ENV == "development") {
 	//开发环境
   ENV_CONFIG = require('.env.dev.js');
} else {
 	//生产环境
   ENV_CONFIG = require('.env.prod.js');
}

// 给环境变量process.uniEnv赋值
if (ENV_CONFIG) {
	process.uniEnv = {};
	for (let key in ENV_CONFIG) {
		process.uniEnv[key] = ENV_CONFIG[key];
	}
}

main.js

// 引入 .env.js 文件
import '.env.js'

根据自己需求判断更改环境

此方法不需要理会 HBuilderX 默认的运行环境

.env.dev.js ,.env.prod.js 两个文件不变,main.js文件同样需要引入 .env.js 文件

.env.js

var EnvChannel = {
	DEVELOPMENT: 0, //开发环境
	TEST: 1, //测试环境
	PRODUCTION: 2 //生产环境
}

// 设置环境,更改参数可改变当前运行所用环境以及参数
const ENV_CHANNEL = 2;
let ENV_CONFIG = null;

if (ENV_CHANNEL == EnvChannel.DEVELOPMENT) {
	// 开发环境
	ENV_CONFIG = require('.env.dev.js');
} else {
	//生产环境
	ENV_CONFIG = require('.env.prod.js');
}

// 给环境变量process.uniEnv赋值
if (ENV_CONFIG) {
	process.uniEnv = {};
	for (let key in ENV_CONFIG) {
		process.uniEnv[key] = ENV_CONFIG[key];
	}
}

此方法可以设置多种环境,根据需求更改当前所运行打包的环境以及参数,不会改变项目默认的当前环境

文章通过查询网上资料总结而出,如有出错或者更好的方法,希望各位大神赐教

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值