V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
K1W1
V2EX  ›  Cloudflare

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

  •  
  •   K1W1 · 17 天前 · 511 次点击

    今天写 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: 前缀。

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

    6 条回复
    oott123
        1
    oott123  
       17 天前   ❤️ 1
    对,不可以。

    Wrangler 打包的时候能帮你处理一部分,但大部分 node 生态的第三方包是不能直接用的。你把他当成一个浏览器可能简单点。
    huihuimoe
        2
    huihuimoe  
       17 天前 via iPhone   ❤️ 1
    是的,cf workers 的运行时不是 node ,不要用 node 的思想写服务
    baobao1270
        3
    baobao1270  
       17 天前 via Android
    toml 配置文件添加 flag node_compat 试过没有
    K1W1
        4
    K1W1  
    OP
       17 天前
    @baobao1270 试过
    K1W1
        5
    K1W1  
    OP
       17 天前
    @oott123 明白了,谢谢,看来 worker 现在还只能轻量使用
    tianzx
        6
    tianzx  
       17 天前 via iPhone
    可以重度使用。我的博客用了全套 cf 的技术,但是需要花时间调
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1051 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 23:53 · PVG 07:53 · LAX 16:53 · JFK 19:53
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.