uniapp报错:,check js stack ->Uncaught Error: unable to locate global object

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
	}
})

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值