You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Node.js运行ESM项目报错ERR_REQUIRE_CYCLE_MODULE但未使用require的问题求助

Node.js运行ESM项目报错ERR_REQUIRE_CYCLE_MODULE但未使用require的问题求助

我最近在运行自己的Node.js应用时碰到了一个特别费解的问题,明明整个项目都采用ESM的import语法编写,完全没使用过require(),但执行node main.js启动项目时,却弹出了Error [ERR_REQUIRE_CYCLE_MODULE]: Cannot require() ES Module的错误提示。我还尝试过用node --experimental-specifier-resolution=node main.js的方式启动,结果还是一样报错。

我的main.js文件里是用标准ESM语法导入./schema/index.js中的内容的,比如:

import { importName } from './schema/index.js'

实在搞不懂,明明没碰require(),为什么报错会说我在使用它来加载ES模块?

下面是完整的错误输出:

node main.js
node:internal/modules/esm/loader:315
        throw new ERR_REQUIRE_CYCLE_MODULE(message);
              ^

Error [ERR_REQUIRE_CYCLE_MODULE]: Cannot require() ES Module /path/to/app/schema/index.js in a cycle. (from /path/to/app/noop.js)
    at ModuleLoader.importSyncForRequire (node:internal/modules/esm/loader:315:15)
    at loadESMFromCJS (node:internal/modules/cjs/loader:1414:24)
    at Module._compile (node:internal/modules/cjs/loader:1547:5)
    at Object..js (node:internal/modules/cjs/loader:1677:16)
    at Module.load (node:internal/modules/cjs/loader:1318:32)
    at Function._load (node:internal/modules/cjs/loader:1128:12)
    at TracingChannel.traceSync (node:diagnostics_channel:322:14)
    at wrapModuleLoad (node:internal/modules/cjs/loader:219:24)
    at Module.require (node:internal/modules/cjs/loader:1340:12)
    at require (node:internal/modules/helpers:138:16) {
  code: 'ERR_REQUIRE_CYCLE_MODULE'
}

Node.js v22.12.0

还有个更奇怪的点:报错信息里提到了一个noop.js文件,但我的项目里根本不存在这个文件啊!有没有人遇到过类似的情况?

最后附上我的package.json内容:

{
  "name": "project-name",
  "version": "0.0.1",
  "dependencies": {},
  "packageManager": "yarn@4.5.3",
  "module": "./main.js",
  "type": "module",
  "main": "./main.js"
}

备注:内容来源于stack exchange,提问作者nerdlinger

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.14 16:47:59