CF Workers 是不是无法依赖 node 的包?

209 天前
 K1W1

今天写 Worker ,依赖了一个三方包,三方包里面依赖了 request-compose 。结果 Worker 就启动不了,说缺少 ulr 、ps 、zlib ... 等一堆 node 的包。查了一下 Worker 的 node 兼容文档,https://developers.cloudflare.com/workers/runtime-apis/nodejs/ 。发现 Worker 只兼容一些 node 包,并且在依赖的时候还要通过 node:xxx 去引入,比如 import { Buffer } from 'node:buffer'; 。一方面能通过 node: 前缀引入的兼容包比较少,别一方向,我也无法去给第三方包里面的依赖都添加 node: 前缀。

是我使用方式不对吗?还是的确是这个限制?

1036 次点击
所在节点    Cloudflare
6 条回复
oott123
209 天前
对,不可以。

Wrangler 打包的时候能帮你处理一部分,但大部分 node 生态的第三方包是不能直接用的。你把他当成一个浏览器可能简单点。
huihuimoe
209 天前
是的,cf workers 的运行时不是 node ,不要用 node 的思想写服务
baobao1270
209 天前
toml 配置文件添加 flag node_compat 试过没有
K1W1
209 天前
@baobao1270 试过
K1W1
209 天前
@oott123 明白了,谢谢,看来 worker 现在还只能轻量使用
tianzx
209 天前
可以重度使用。我的博客用了全套 cf 的技术,但是需要花时间调

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1032204

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX