uni-app CLI:APP 多环境打包(测试/正式)最简配置 + `import.meta.env` 为 `undefined` 的解决

要达成的效果

  • npm run build:app-plus:test → APP 走测试接口:https://api-test.example.com/prod-api
  • npm run build:app-plus:prod → APP 走正式接口:https://api.example.com/prod-api

需要改的 3 个地方

1).env.build-dev(测试)

ini 复制代码
VITE_API_BASE_URL=https://api-test.example.com

2).env.production(正式)

ini 复制代码
VITE_API_BASE_URL=https://api.example.com

3)package.json(两条命令)

json 复制代码
{
  "scripts": {
    "build:app-plus:test": "uni build --platform app-plus --mode build-dev",
    "build:app-plus:prod": "uni build --platform app-plus --mode production"
  }
}

import.meta.env 为啥在 APP 里会是 undefined

APP 端有些链路下不会稳定保留 import.meta.env。最稳做法是:构建时把域名写死进产物

最简单写法

vite.config.js 注入一个编译期常量:

js 复制代码
define: {
  __VITE_API_BASE_URL__: JSON.stringify(apiBaseUrl)
}

在 使用的地方优先读它:

js 复制代码
const envApiBase =
  typeof __VITE_API_BASE_URL__ !== "undefined"
    ? __VITE_API_BASE_URL__
    : import.meta?.env?.VITE_API_BASE_URL;
相关推荐
2501_9160074714 小时前
iOS开发中抓取HTTPS请求的完整解决方法与步骤详解
android·网络协议·ios·小程序·https·uni-app·iphone
00后程序员张18 小时前
Windows 下怎么生成 AppStoreInfo.plist?不依赖 Xcode 的方法
ide·macos·ios·小程序·uni-app·iphone·xcode
__zRainy__19 小时前
uni-app 全局容器实战系列(二):Vite 虚拟模块
windows·uni-app
__zRainy__19 小时前
uni-app 全局容器实战系列(一):全局容器的实现
uni-app·vite
安生生申21 小时前
uni-app 连接 JDY-31 蓝牙串口模块实践
c语言·前端·javascript·stm32·单片机·嵌入式硬件·uni-app
小离a_a21 小时前
uniapp小程序封装圆环显示比例数据
android·小程序·uni-app
__zRainy__21 小时前
uni-app 全局容器实战系列(三):全局 NavBar 和 TabBar 组件设计
uni-app
一颗小青松1 天前
uniapp输入框fixed定位,导致页面顶起解决方案
前端·uni-app
2501_915106322 天前
深入解析无源码iOS加固原理与方案,保护应用安全
android·安全·ios·小程序·uni-app·cocoa·iphone
万能小林子2 天前
2026 AI开发新范式:Vibe Coding生成网页 + 3分钟打包成App,非技术人也能独立发布自己的App!
人工智能·uni-app·ai编程·web app·vibecoding