揭荸 发表于 2025-6-19 14:27:57

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,刚刚试了还是能正常跑的,不知道是否有大佬知道,欢迎留言分享,一起进步。

来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
页: [1]
查看完整版本: uni-app项目process is not defined