CC 4.0 协议
本节内容派生于以下链接指向的内容 ,并遵守 CC BY 4.0 许可证的规定。
以下内容如果没有特殊声明,可以认为都是基于原内容的修改和删减后的结果。
Node
全局变量:该选项可以配置是否 polyfill 或 mock 某些 Node.js 全局变量。
node.global
- 类型:
boolean | 'warn' - 默认值:
'warn'
控制 Rspack 在为非 Node 环境打包时,是否需要为 Node.js 的 global 对象提供 polyfill。
关于该对象的具体行为,请参考 Node.js 文档。
可选值
true:Rspack 会注入 polyfill,使打包产物中能够使用global。适用于依赖 Node.js 全局变量、但运行在非 Node 环境的代码false:不注入 polyfill。对global的引用将保持原样。如果目标环境不支持global,运行时会抛出ReferenceError'warn':行为与true相同,会注入 polyfill,同时在使用global时额外打印警告
示例
例如,禁用 global polyfill:
rspack.config.mjs
node.__filename
- 类型:
boolean | 'mock' | 'warn-mock' | 'eval-only' - 默认值:
- 当
target不包含node时,默认值为'warn-mock'。 - 当
target包含node时,启用 output.module 则为'node-module',否则为'eval-only'
- 当
控制 Rspack 在为非 Node 环境打包时,如何处理 Node.js 的 __filename 和 import.meta.filename 变量。
可选值
true:替换为源文件的文件路径,相对于context选项false:不做任何处理,保持原生行为'mock':替换为'/index.js''eval-only':等同于false'warn-mock':替换为'/index.js',并输出警告,用于提醒代码中存在潜在的 Node 依赖'node-module':仅在 output.module 启用时使用。将 CommonJS 中的__filename替换为基于import.meta.url的等价实现,适合 ESM 产物
示例
例如,不对 __filename 和 import.meta.filename 进行任何处理:
rspack.config.mjs
将 ESM 产物中的 __filename 替换为 fileURLToPath(import.meta.url):
rspack.config.mjs
node.__dirname
- 类型:
boolean | 'mock' | 'warn-mock' | 'eval-only' - 默认值:
- 当
target不包含node时,默认值为'warn-mock'。 - 当
target包含node时,启用 output.module 则为'node-module',否则为'eval-only'
- 当
控制 Rspack 在为非 Node 环境打包时,如何处理 Node.js 的 __dirname 和 import.meta.dirname 变量。
可选值
true:替换为源文件的目录路径,相对于context选项false:不做任何处理,保持原生行为'mock':替换为'/''eval-only':等同于false'warn-mock':替换为'/',并输出警告,用于提醒代码中存在潜在的 Node 依赖'node-module':仅在 output.module 启用时使用。将 CommonJS 中的__dirname替换为基于import.meta.url的等价实现,适合 ESM 产物
示例
例如,不对 __dirname 和 import.meta.dirname 进行任何处理:
rspack.config.mjs
将 ESM 产物中的 __dirname 替换为 fileURLToPath(import.meta.url + "/.."):
rspack.config.mjs

