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