uniapp微信小程序多環(huán)境配置以及使用教程
前后端分離開(kāi)發(fā)模式中,無(wú)論前后端都有可能區(qū)分不同的環(huán)境配置,開(kāi)發(fā)環(huán)境(dev)、測(cè)試環(huán)境(test)、線(xiàn)上生產(chǎn)環(huán)境(prod)等,不同環(huán)境的設(shè)置,后端請(qǐng)求api地址等不同,那么在小程序如何設(shè)置多環(huán)境配置呢?
定義其他的環(huán)境變量
之前搞vue的時(shí)候 可以通過(guò) .env的方式配置開(kāi)發(fā)測(cè)試和線(xiàn)上需要的環(huán)境變量
uniapp中只有 development 和 production 這兩個(gè)條件
vu2版本通過(guò)process.env.NODE_ENV可以獲取到
我如果需要其他的變量怎么辦呢: 如 測(cè)試 test等
通過(guò)官網(wǎng)我們可以看到示例

在根目錄下的 package.json文件中 (沒(méi)有的話(huà)通過(guò) npm init -y初始化創(chuàng)建一個(gè))
{
"uni-app": {
"scripts": {
"dev": {
"title": "微信小程序——開(kāi)發(fā)版",
"env": {
"ENV_TYPE": "dev",
"UNI_PLATFORM": "mp-weixin",
"VUE_APP_BASE_URL": "http://127.0.0.1:8080/"
}
},
"test": {
"title": "微信小程序——測(cè)試版",
"env": {
"ENV_TYPE": "test",
"UNI_PLATFORM": "mp-weixin",
"VUE_APP_BASE_URL": "http://test.domain/"
}
},
"pro": {
"title": "微信小程序——正式版",
"env": {
"ENV_TYPE": "pro",
"UNI_PLATFORM": "mp-weixin",
"VUE_APP_BASE_URL": "http://pro.domain/"
}
}
}
},
"name": "xm-uni-app",
"version": "1.0.0",
"description": "{**When you're done, you can delete the content in this README and update the file with details for others getting started with your repository**}",
"main": "main.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"repository": {
"type": "git",
"url": ""
},
"keywords": [],
"author": "",
"license": "ISC"
}保存之后,在HBuilderX中會(huì)顯示在 運(yùn)行/發(fā)行 菜單中


vue2版本中使用
直接通過(guò)process.env打印的時(shí)候會(huì)看不到

直接通過(guò)process.env.變量名使用就行
console.log(process.env.VUE_APP_BASE_URL,'獲取處于當(dāng)前開(kāi)發(fā)環(huán)境的url'); console.log(process.env.ENV_TYPE,'獲取當(dāng)前處于哪個(gè)開(kāi)發(fā)環(huán)境'); console.log(process.env,'process.env++++++++++++');


vue3 vite版中使用
在vue3中獲取不到process,所以需要一些改造
{
"uni-app": {
"scripts": {
"dev": {
"title": "微信小程序——開(kāi)發(fā)版",
"env": {
"ENV_TYPE": "dev",
"UNI_PLATFORM": "mp-weixin",
"VITE_BASE_API": "http://127.0.0.1:8080/"
}
},
"test": {
"title": "微信小程序——測(cè)試版",
"env": {
"ENV_TYPE": "test",
"UNI_PLATFORM": "mp-weixin",
"VITE_BASE_API": "http://test.domain/"
}
},
"pro": {
"title": "微信小程序——正式版",
"env": {
"ENV_TYPE": "pro",
"UNI_PLATFORM": "mp-weixin",
"VITE_BASE_API": "http://pro.domain/"
}
}
}
}
}在src/utils文件夾下創(chuàng)建envConfig.js
// 導(dǎo)出的環(huán)境請(qǐng)求地址
//本地環(huán)境
const dev = {
ENV: "dev",
VITE_BASE_API: "http://127.0.0.1:8080/dev-api",
};
//正式環(huán)境
const pro = {
ENV: "pro",
VITE_BASE_API: "https://xxx/prod-api",
};
//測(cè)試環(huán)境
const test = {
ENV: "test",
VITE_BASE_API: "https://xxx/test-api",
};
export default {
dev,
test,
pro,
};在vite.config.js添加配置
import { defineConfig } from "vite";
import uni from "@dcloudio/vite-plugin-uni";
import ENV_CONFIG from "./utils/envConfig.js";
import { resolve } from "path"; // 導(dǎo)入 path 模塊,幫助我們解析路徑
export default defineConfig(() => {
return {
server: {
port: "3002",
},
resolve: {
alias: {
"@": resolve(__dirname, "/src"),
},
},
plugins: [uni()],
define: {
"process.env.config": ENV_CONFIG, //配置一
'process.env': process.env, //配置二
},
};
});使用方式
let baseURL = process.env.config[process.env.UNI_SCRIPT].VITE_BASE_API; //獲取處于當(dāng)前開(kāi)發(fā)環(huán)境的url
let evnName = process.env.config[process.env.UNI_SCRIPT].ENV; //獲取當(dāng)前處于哪個(gè)開(kāi)發(fā)環(huán)境
console.log("baseURL:", baseURL, "++++++++++++++++++++++++");
console.log("envName:", evnName, "++++++++++++++++++++++++");
console.log("evn:", process.env, "++++++++++++++++++++++++");

總結(jié)
到此這篇關(guān)于uniapp微信小程序多環(huán)境配置以及使用的文章就介紹到這了,更多相關(guān)uniapp微信小程序多環(huán)境內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- UNIAPP實(shí)現(xiàn)微信小程序登錄授權(quán)和手機(jī)號(hào)授權(quán)功能(uniapp做微信小程序)
- 前端uniapp微信小程序跨域問(wèn)題的解決方法
- uniapp實(shí)現(xiàn)微信小程序支付(前端)詳細(xì)代碼
- uniapp微信小程序支付前端生成簽名并調(diào)起微信支付全部代碼
- uniapp微信小程序使用webview嵌套u(yù)niappH5并實(shí)現(xiàn)通信詳細(xì)步驟
- uniapp開(kāi)發(fā)微信小程序主包太大和vendor.js過(guò)大無(wú)法打包問(wèn)題解決
- uniapp微信小程序axios庫(kù)的封裝及使用詳細(xì)教程
- uniapp微信小程序授權(quán)登錄并獲取手機(jī)號(hào)的方法
- uniapp微信小程序訂閱消息發(fā)送服務(wù)通知超詳細(xì)教程
- uniapp 微信小程序之金額展示套餐
相關(guān)文章
創(chuàng)建一個(gè)復(fù)制UBB軟件信息的鏈接或按鈕的js代碼
2008-01-01
setInterval 不準(zhǔn)的原因及問(wèn)題解決方案
setInterval 是 JavaScript 中用于定時(shí)執(zhí)行任務(wù)的常用方法,本文主要介紹了setInterval 不準(zhǔn)的原因及問(wèn)題解決方案,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2025-02-02
dispatchEvent解決重疊元素響應(yīng)事件示例詳解
這篇文章主要為大家介紹了dispatchEvent解決重疊元素響應(yīng)事件示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-10-10
詳解JavaScript中扁平與樹(shù)形數(shù)據(jù)的轉(zhuǎn)換
這篇文章主要為大家想介紹了JavaScript中實(shí)現(xiàn)扁平與樹(shù)形數(shù)據(jù)相互轉(zhuǎn)換的方法,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)JavaScript有一定的幫助,需要的可以參考一下2023-01-01
JS長(zhǎng)整型精度問(wèn)題實(shí)例分析
這篇文章主要介紹了JS長(zhǎng)整型精度問(wèn)題,實(shí)例分析了Java項(xiàng)目結(jié)合前臺(tái)js腳本出現(xiàn)的長(zhǎng)整型精度問(wèn)題與相應(yīng)的解決方案,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-01-01
利用three.js畫(huà)一個(gè)3D立體的正方體示例代碼
Three.js是一個(gè)3DJavaScript庫(kù),基于右手坐標(biāo)系,可以創(chuàng)建簡(jiǎn)單或是比較復(fù)雜的三維圖形并應(yīng)用豐富多彩的紋理和材質(zhì),可以添加五光十色的光源,可以在3D場(chǎng)景中移動(dòng)物體或是添加腳本動(dòng)畫(huà)等等。本文介紹了利用three.js如何畫(huà)一個(gè)3D立體的正方體的方法,需要的可以參考下。2017-11-11

