通常情况下,我们不会在浏览器端使用 Node 模块。但在当前代码需要同时在 Node 端和浏览器端运行时,用到一些 Node 模块是有可能的。Node Polyfill 为这些 Node 模块提供了浏览器版本的 polyfills。
通过使用 Node Polyfill 插件,会自动注入 Node 核心模块在浏览器端的 polyfills,让你可以在浏览器端放心使用这些模块。
你可以通过如下的命令安装插件:
你可以在 rsbuild.config.ts 文件中注册插件:
Bufferprocess当你在代码中使用以上全局变量时,对应 polyfill 会被自动注入。
assertbufferconsoleconstantscryptodomaineventshttphttpsospathpunycodeprocessquerystringstream_stream_duplex_stream_passthrough_stream_readable_stream_transform_stream_writablestring_decodersystimersttyurlutilvmzlib当你通过 require 或 import 等语法在代码中引用以上模块时,对应 polyfill 会被注入。
child_processclusterdgramdnsfsmodulenetreadlinerepltls目前浏览器端没有以上模块的 polyfill,因此当你引用以上模块时,会自动 fallback 为一个空对象。