直接按照正常安装方式进行安装即可复现
- 发布:2025-01-03 10:46
- 更新:2025-01-07 16:36
- 阅读:125
产品分类: uniCloud/App
操作步骤:
预期结果:
希望能顺利安装各平台最新版的SDK且能正常使用。
希望能顺利安装各平台最新版的SDK且能正常使用。
实际结果:
安装过程无法顺利进行,即使进行更改后勉强完成安装,但无法使用。
安装过程无法顺利进行,即使进行更改后勉强完成安装,但无法使用。
bug描述:
目前uniCloud阿里云最高版本的nodejs 20.10.0安装抖音和支付宝的最新版SDK都有问题,已经耽误很久了,请问官方能不能出个安装教程,或者直接内置各平台最新版的SDK?这个问题多次发帖以及在群里询问都无回应,uni官方最近是咋了?麻烦看到回复一下,谢谢!
易者 (作者)
两个SDK的官网链接如下:
uniCloud服务端的nodejs版本用的是uniCloud阿里云当前已安装的最新版20.10.0。
支付宝SDK升级alipay-sdk v3 到 v4 时,用NPM下载了官网的源文件后,上传到uniCloud报错找不到index文件,无法上传安装,把package.json文件中的一些路径中的./符号删去后可以正常安装依赖,但用支付宝官网提供的方式引用SDK就报错ReferenceError: MessagePort is not defined,加不加.default都一样,用回V3版又正常。这个问题之前在dcloud论坛发过,原帖是uniCloud升级Alipay SDK版本后报错,但很多天没回应,无奈只好多次发帖,甚至提交bug。
抖音SDK用NPM下载了官网的源文件后,上传到uniCloud也报错The file "index.js" cannot be found,自建空白index.js文件后提示上传成功。然后再用抖音官网的使用方式测试SDK,报错Cannot find module 'open_api_sdk'
Require stack:……
以上就是本帖所说的问题。求助!感谢!
易者 (作者)
支付宝SDK引用方式尝试过以下几种:
- const AlipaySdk = require('alipay-sdk');
- const {AlipaySdk }= require('alipay-sdk');
- const AlipaySdk = require('alipay-sdk').default;
- const {AlipaySdk} = require('alipay-sdk').default;
抖音SDK引用方式尝试过以下几种:
- const Client, {MessageGetUserMessageRequest} = require('open_api_sdk');
const CredentialClient = require('open_api_credential'); - const {Client, MessageGetUserMessageRequest} = require('open_api_sdk');
const CredentialClient = require('open_api_credential');
以上方式都不行。我前些天在支付宝社区发帖请教此事,有说新版本的运行环境不支持Web Worker特性的,也有说可能新版本的SDK不完全兼容Node.js环境的,我很是迷茫,不知所措,但又急用。
请问能不能出个教程?或者直接内置?谢谢了!
-
支付宝是支持commonjs引入的,const {AlipaySdk }= require('alipay-sdk'); 可以正常使用。
2025-01-08 17:02
-
抖音的sdk不支持直接引入,但是require('@open-dy/open_api_sdk').default也是可以正常引入的。
2025-01-08 17:04
-
易者 (作者)
支付宝用const {AlipaySdk }= require('alipay-sdk'); 可以引入,但无法正常使用,会报错:webidl.is.MessagePort = webidl.util.MakeTypeAssertion(MessagePort)
ReferenceError: MessagePort is not defined
但是在我本地的Node.js的v22.12.0版本的Express 框架里用这种方式可以正常使用支付宝SDK v4。
抖音用require('@open-dy/open_api_sdk').default还是不能引入,报错:Error: Cannot find module '@open-dy/open_api_sdk'
Require stack:
at Module._resolveFilename [as _oldResolveFilename] (node:internal/modules/cjs/loader:1140:15)
at Function.resolve (node:internal/modules/helpers:188:19)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
抖音的SDK文件需要更改吗?以什么路径上传到uniCloud云端?
会不会是uniCloud云端Node.js的版本问题,或者是uniCloud云端环境的其它问题?2025-01-09 12:13
易者 (作者)
不好意思!以为又是很多天才能等到回复,所以下午没跟进,请见谅!我把问题重复整理在楼下的跟帖里面,请移步查阅,非常感谢!
2025-01-03 18:27