18:23:13.634 reportJSException >>>> exception function:createInstanceContext, exception:white screen cause create instanceContext failed,check js stack ->Uncaught Error: unable to locate global object
at getGlobal (app-service.js:18701:11)
at (app-service.js:18703:21)
at (app-service.js:36748:3)
报错原因【基于app端测试一下这些库就知道了】:
// 基于Uniapp在app端运行报错【Uncaught Error: unable to locate global object】
// 错误原因是:Uniapp在app端运行时,没有提供global对象,导致ethers.js和tronweb.js无法正常运行
// 注:还有更多的库可能会出现类似的问题【使用时需要自行测试...】import { Wallet } from "ethers"
import tronweb from "tronweb"console.log(Wallet)
console.log(tronweb)
解决方案配置vite.config.ts【解决跨端中global全局对象指向的问题】:
import { defineConfig } from "vite"
import uni from "@dcloudio/vite-plugin-uni"// https://vitejs.dev/config/
export default defineConfig({plugins: [uni()],define: {/*** 功能:定义或覆盖全局对象* 特殊说明:* 1、兼容多平台的全局对象【统一标准化全局对象为globalThis】* H5端【global全局对象默认=window】但是兼容globalThis* Node端【global全局对象默认=global】但是兼容globalThis* WebWorker端【global全局对象默认=self】但是兼容globalThis* App端、小程序端等非标准环境【没有全局对象】但是兼容globalThis*/global: "globalThis" // 兼容跨端的全局对象global为globalThis}
})