uni-app项目process is not defined

前情

uni-app是我比较喜欢的跨平台框架,它能开发小程序/H5/APP(安卓/iOS),重要的是对前端开发友好,自带的IDE让开发体验也挺棒的,公司项目就是主推uni-app。

坑位

最近在开发一个多端小程序,先开发的微信端再适配的支付宝端,而当我支付宝适配并上线后我想重切回微信端跑的时候发现微信端报错了,我当时脑袋是蒙蒙的,错误如下图:

Why?

我回顾了最近我做的修改,我唯一对工程化这一块的修改就是我只是加了一个自定义的开发环境增加环境变量的调整,在package.json增加了一些配置:

  // ...
  "uni-app": {
    "scripts": {
      "alipay-test": {
        "title": "支付宝小程序 本地环境",
        "env": {
          "UNI_PLATFORM": "mp-alipay",
          "NAME": "local"
        }
      }
    }
  }
  // ...

是不是因为因为了加了配置,hbuilder会重构环境变量,导致环境变量丢失了,只是个人猜测,如果有知道的大佬,可以留言分享原因,感谢

解决方案

在项目根目录下的vite.config.js增加如下配

// ...
define: {
  'process.env': {}
}
// ...

期望

此次问题在几翻折腾尝试后最终得解决,但是并没有真正找到引起的原因,如果有大佬知道为什么,欢迎留言,一起进步

2025-06-19续:

我又在网上查了一些资料,因为我的项目是uniapp vue3+vite的项目,而vite是默认废弃了process.env,如果想继续用就得增加如上define配置

解决方案2

如果不想增加如上的配置,在你使用process.env的地方全部换成import.meta.env即可,自测是可行的

又产生一个疑问

但是我一开始开发的就是微信小程序端,中是间隔也就2周,是直接使用的process.env,也没有增加define,我手上的另一个项目也没有增加define,刚刚试了还是能正常跑的,不知道是否有大佬知道,欢迎留言分享,一起进步。

原创作者: xwwin 转载于: https://www.cnblogs.com/xwwin/p/18936600
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值