vite.config.ts 中增加 "process.env": {} 后uni-app统计报错
vite.config.ts 中增加 “process.env”: {} 后uni-app统计报错
开发环境 | 版本号 | 项目创建方式 |
---|---|---|
Mac | macOS 12.6.3 | HBuilderX |
产品分类:uniapp/App
PC开发环境操作系统:Mac
PC开发环境操作系统版本号:macOS 12.6.3
HBuilderX类型:正式
HBuilderX版本号:3.95
手机系统:Android
手机系统版本号:Android 13
手机厂商:华为
手机机型:nova 10
页面类型:nvue
vue版本:vue3
打包方式:云端
项目创建方式:HBuilderX
### 操作步骤:
export default defineConfig({
define: {
"process.env": {}
},
})
增加这个代码,使用uni统计就会直接报错
reportJSException >>>>>> exception function:createInstanceContext, exception:white screen cause create instanceContext failed,check js stack ->
Uncaught TypeError: Cannot read property 'reportInterval' of undefined
at get_report_Interval (app-service.js:327948:36)
at (app-service.js:328061:26)
at (app-service.js:328796:3)
预期结果:
export default defineConfig({ define: { “process.env”: {} }, })
增加这个代码,使用uni统计正常使用
### 实际结果:
export default defineConfig({
define: {
"process.env": {}
},
})
增加这个代码,使用uni统计就会直接报错
bug描述:
define: { “process.env”: {} }, 增加了上面的代码后 ,uni统计就会报错,
如果不增加上面代码就会报 process没有定义.
不知道要怎么解决.

更多关于vite.config.ts 中增加 "process.env": {} 后uni-app统计报错的实战教程也可以访问 https://www.itying.com/category-93-b0.html
已经解决
因为统计的SDK 源码里没有定义 reportInterval collectItems这两个字段,在判断的时候也没有处理,所以就会报错.
在manifest.json
“uniStatistics” : {
“enable” : true,
“debug” : true,
“reportInterval”: 0,
“collectItems”: null,
“version” : “2”
}
配置下就可以了.希望官方可以在下个版本修复.
更多关于vite.config.ts 中增加 "process.env": {} 后uni-app统计报错的实战教程也可以访问 https://www.itying.com/category-93-b0.html
在 Vite 项目中,如果你在 vite.config.ts
中增加了 process.env: {}
,可能会导致 uni-app
的统计功能报错。这是因为 uni-app
依赖于 process.env
来获取环境变量,而你在配置中将 process.env
覆盖为一个空对象,导致 uni-app
无法正确获取环境变量。
解决方法
-
保留
process.env
的原始值
你可以在vite.config.ts
中保留process.env
的原始值,而不是直接覆盖它。可以通过define
配置来添加自定义的环境变量,而不是覆盖整个process.env
。import { defineConfig } from 'vite'; export default defineConfig({ define: { 'process.env': { ...process.env, // 添加自定义环境变量 CUSTOM_VAR: JSON.stringify('custom_value'), }, }, });
-
使用
import.meta.env
Vite 推荐使用import.meta.env
来访问环境变量,而不是process.env
。你可以在代码中将process.env
替换为import.meta.env
。// 替换前 const envVar = process.env.VAR_NAME; // 替换后 const envVar = import.meta.env.VAR_NAME;
-
检查
uni-app
的统计代码
如果uni-app
的统计代码中使用了process.env
,你可以尝试修改这部分代码,或者联系uni-app
的开发者,看看是否有其他解决方案。 -
使用
dotenv
插件
如果你需要在 Vite 中使用.env
文件来管理环境变量,可以使用dotenv
插件。npm install dotenv --save
然后在
vite.config.ts
中配置:import { defineConfig } from 'vite'; import dotenv from 'dotenv'; dotenv.config(); // 加载 .env 文件 export default defineConfig({ define: { 'process.env': { ...process.env, // 添加自定义环境变量 CUSTOM_VAR: JSON.stringify('custom_value'), }, }, });