使用 yarn 的时候,遇到 Error [ERR_REQUIRE_ESM]: require() of ES Module 怎么解决?
warning:
这篇文章距离上次修改已过202天,其中的内容可能已经有所变动。
报错解释:
这个错误表示你正在尝试使用 require()
函数来加载一个使用 ES6 模块语法(即 import/export
)编写的模块。Node.js 从版本 ES6 开始支持 ES6 模块,但是默认情况下,Node.js 仍然使用 CommonJS 模块系统。因此,当你尝试使用 require()
加载一个 ES6 模块时,会抛出 ERR_REQUIRE_ESM
错误。
解决方法:
- 使用 ES6 模块语法:如果你的代码是在支持 ES6 模块的环境中运行,请使用
import
和export
代替require
和module.exports
。 - 使用
--experimental-modules
标志:在 Node.js 14 或更早版本中,你可以通过在启动 Node.js 时添加--experimental-modules
标志来启用对 ES6 模块的实验性支持。 - 转换为 CommonJS:如果你不想修改代码,可以使用工具如 babel 或 tsc 将 ES6 模块转换为 CommonJS 模块。
- 使用特定的包管理器:有些包管理器支持 ES6 模块,如 yarn 2 使用的berry版本默认支持。可以考虑升级到这些工具的最新版本,以便直接支持 ES6 模块。
评论已关闭