内容提要
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兼容性设为默认设置。