Node.js 中 require 和 import 混用导致的 ERR_REQUIRE_ESM 报错排查
在维护一个已经运行了几年的 Node.js 服务时,经常会遇到这样的情况:项目里大部分文件还是 CommonJS 的 require 写法,但某个新引入的 npm 包只提供 ESM 版本,或者团队里有人用 import 写了新模块,结果启动时直接抛出 ERR_REQUIRE_ESM。这个错误的本质是 Node.js 对模块系统的加载规则有严格区分,require 不能直接加载 ES Module,而 import 在 CommonJS 文件里又需要特定的运行时支持。很多开发者第一反应是改 package.j...