在Cloudflare Workers上使用更多NPM包:结合polyfills和原生代码支持Node.js API

在Cloudflare Workers上使用更多NPM包:结合polyfills和原生代码支持Node.js API

💡 原文英文,约2000词,阅读约需8分钟。
📝

内容提要

Cloudflare宣布改进了Workers和Pages的Node.js兼容性,允许用户使用更多的NPM包和JavaScript生态系统。新的兼容性结合了以前的努力的最佳特性,允许在Workers上使用更多的Node.js API。用户可以通过在wrangler.toml中添加标志并使用Wrangler部署他们的Worker来尝试它。改进的兼容性将很快成为所有启用了现有兼容性标志的Workers的默认设置。Cloudflare Workers运行在一个名为workerd的JavaScript/Wasm运行时上,该运行时旨在运行不受信任的代码并使用Web标准API。新的方法在Workers运行时中直接实现了一部分Node.js API,并为其他Node.js API提供了polyfills。用户还可以使用模块别名来实现缺失的API。Cloudflare正在积极为unenv项目做出贡献,该项目根据使用的API和目标运行时添加必要的polyfills。

🎯

关键要点

  • Cloudflare宣布改进Workers和Pages的Node.js兼容性,支持更多NPM包和JavaScript生态系统。
  • 新的Node.js兼容性结合了之前努力的最佳特性,允许在Workers上使用更多Node.js API。
  • 用户可以通过在wrangler.toml中添加标志来尝试新的兼容性。
  • 改进的兼容性将成为所有启用了现有兼容性标志的Workers的默认设置。
  • Cloudflare Workers运行在workerd运行时上,旨在运行不受信任的代码。
  • Cloudflare为unenv项目做出贡献,提供必要的polyfills。
  • 新的方法实现了一部分Node.js API,并为其他API提供polyfills。
  • 用户可以使用模块别名来实现缺失的API。
  • 改进的Node.js兼容性允许使用更多NPM包,包括body-parser、jsonwebtoken等。
  • 新的混合模型结合了直接实现的Node.js API和polyfills,简化了使用过程。
  • 用户可以通过模块别名实现未实现的Node.js API的功能。
  • Cloudflare计划在2024年9月23日将新行为设为默认设置。

延伸问答

Cloudflare Workers的新Node.js兼容性有什么改进?

Cloudflare Workers的新Node.js兼容性允许使用更多的NPM包和Node.js API,包括async_hooks、buffer、dns等,且不再需要node:前缀。

如何在Cloudflare Workers中启用新的Node.js兼容性?

用户可以通过在wrangler.toml中添加compatibility_flags = ['nodejs_compat_v2']来启用新的Node.js兼容性。

Cloudflare Workers的运行时workerd与Node.js有什么不同?

workerd是一个开源的JavaScript/Wasm运行时,旨在运行不受信任的代码,而Node.js主要用于直接在主机操作系统上运行服务。

Cloudflare如何解决Node.js API的缺失问题?

Cloudflare通过提供polyfills和模块别名来解决Node.js API的缺失问题,允许用户实现缺失的功能。

Cloudflare Workers支持哪些流行的NPM包?

Cloudflare Workers支持的流行NPM包包括body-parser、jsonwebtoken、pg等。

Cloudflare计划何时将新的Node.js兼容性设为默认设置?

Cloudflare计划在2024年9月23日将新的Node.js兼容性设为默认设置。

➡️

继续阅读