1
cwxiaos 2023-12-21 08:32:03 +08:00 via iPhone
用 wrangler, 会将依赖和 main 编译成一个文件
|
2
justin2018 2023-12-21 08:57:02 +08:00 1
|
3
HUZHUANGZHUANG OP @cwxiaos #1 谢谢大佬指点,我尝试了一下, 我是使用 https://docs.leancloud.cn/sdk/engine/functions/sdk/ 进行数据查询,但是怎么更换在 worker 下面的 src/index.js 中引入 leanengine 或者 leancloud-storage 的方式 代码都无法正常跑起来,总是报一些库内部的错误.暂时先放弃,我用一下二楼的方法试试
|
4
sparkinglemon 2023-12-21 10:30:08 +08:00
https://developers.cloudflare.com/workers/get-started/quickstarts/
这里面找个例子你就懂了,加一个 wrangler 的配置之后,用相关命令打包。 (比较另类的解决方式是用 Pages 的 function ) |
5
sparkinglemon 2023-12-21 10:33:23 +08:00
@HUZHUANGZHUANG worker 的 runtime 不一定能兼容你要用的 sdk ,扫了一眼比如 leanengine 就用了 connect 。
|
6
HUZHUANGZHUANG OP @sparkinglemon #5 所以我这种查询是不能用 worker 来实现吗?
大佬,确实是用 leanengine 会出现提示 ✘ [ERROR] service core:user:my-worker-test: Uncaught TypeError: globalThis.XMLHttpRequest is not a constructor 这个问题 最终报错就是在 connect 这个库 |
7
liuhai233 2023-12-21 10:50:51 +08:00
|
8
HUZHUANGZHUANG OP @liuhai233 #7 问题在于我是想在 workers 中实现使用 leancloud sdk 进行数据查询,现在依赖加载不起来,查询就执行不起来,用啥都没用吧?
|
9
sparkinglemon 2023-12-21 11:09:20 +08:00
@HUZHUANGZHUANG sdk 实现方式看起来希望不大,比如 XMLHttpRequest worker 就没实现,worker 兼容性你可以看下这两个链接:
https://developers.cloudflare.com/workers/runtime-apis/ https://developers.cloudflare.com/workers/runtime-apis/nodejs/ 但是因为有 fetch ,所以可以通过 restapi 的方式来自己适配 |
10
v2yllhwa 2023-12-21 11:09:30 +08:00 via Android
可以试试用 fetch pollyfill 一个 XMLHttpRequest 。
|
11
wdssmq 2023-12-21 11:23:10 +08:00
cf 自己有对应 leancloud 各种产品生态位的东西。。KV ,D1 之类的
|
12
type 2023-12-21 11:29:37 +08:00
|
13
Uyloal 2023-12-21 11:32:01 +08:00
@HUZHUANGZHUANG #6 CF Worker 是边缘 Function ,Runtime 是类似于浏览器的执行环境,基本上依赖了 NodeJS 能力的库都不能用。
|
14
sparkinglemon 2023-12-21 11:41:58 +08:00 1
@type pages 最简单的部署就是随便搞个 vite 的项目打包对吧,但是如果想在同一个项目下提供几个接口,就可以在根目录下新建一个“functions”目录,这目录下的 js/ts 会被自动识别为 worker 的函数,在边缘执行提供部分的服务端能力(也可以对接 D1 ,KV 这套东西),也能基于命名规则做一些中间件。
我个人体验下来会比纯 worker 项目顺手些,而且能同时兼顾页面和接口,避免需要分离拆成两个项目。 |
15
type 2023-12-21 11:57:40 +08:00
@sparkinglemon 明白了,感谢!
|
16
HUZHUANGZHUANG OP @sparkinglemon #14 我想问一下,这个另类的方法是不是也解决不了涉及到第三方 sdk 调用的情况?
|
17
sparkinglemon 2023-12-21 17:25:22 +08:00
@HUZHUANGZHUANG 解决不了,你的情况,问题在于你要用的包本身在 worker 的环境下就运行不了…… worker 还是适合直接调用第三方 api 的情况,很少有专门适配过的 sdk
|
18
HUZHUANGZHUANG OP @sparkinglemon #17 好的,感谢回复
|