【问题标题】:"require" not supported even though I'm using "import" [duplicate]即使我使用“import”,也不支持“require” [重复]
【发布时间】:2021-11-27 08:38:50
【问题描述】:

代码:

import fetch from 'node-fetch';

错误:

Error [ERR_REQUIRE_ESM]: require() of ES Module C:\Users\youar_mnnijcy\Documents\Work\Typescript\CoredV5-TS\node_modules\node-fetch\src\index.js from C:\Users\youar_mnnijcy\Documents\Work\Typescript\CoredV5-TS\src\commands\general\ping.ts not supported.
Instead change the require of index.js in C:\Users\youar_mnnijcy\Documents\Work\Typescript\CoredV5-TS\src\commands\general\ping.ts to a dynamic import() which is available in all CommonJS modules.    
    at Object.<anonymous> (C:\Users\youar_mnnijcy\Documents\Work\Typescript\CoredV5-TS\src\commands\general\ping.ts:15:38)
    at Module.m._compile (C:\Users\youar_mnnijcy\AppData\Local\Yarn\Data\global\node_modules\ts-node\dist\index.js:704:29)
    at Object.require.extensions.<computed> [as .ts] (C:\Users\youar_mnnijcy\AppData\Local\Yarn\Data\global\node_modules\ts-node\dist\index.js:706:16)
    at bot.<anonymous> (C:\Users\youar_mnnijcy\Documents\Work\Typescript\CoredV5-TS\src\classes\bot.ts:43:44)
    at Generator.next (<anonymous>)
    at fulfilled (C:\Users\youar_mnnijcy\Documents\Work\Typescript\CoredV5-TS\src\classes\bot.ts:5:58) {
  code: 'ERR_REQUIRE_ESM'
}

附加信息:

"node-fetch": "^3.0.0"

"@types/node-fetch": "^3.0.3"

当我尝试降级到 v2.6.2 时,我从我的 IDE 中收到一个错误,我安装了 @types/node-fetch,但我仍然收到该错误。

【问题讨论】:

标签: javascript typescript fetch


【解决方案1】:

默认情况下,TypeScript 会将您的代码编译成ES3 JavaScript。这将导致您的导入被编译成this。您可以通过将tsconfig 中的target 切换为ES6ES2015 来更改该行为。

这样生成的 JavaScript 将使用 import 而不是 require 并使用 node-fetch@3.x

【讨论】:

  • 已经是“ES6”了。
【解决方案2】:

我是如何解决这个问题的:

卸载 node-fetch 和类型,

npm uninstall node-fetch npm uninstall @types/node-fetch

安装任何2.版本的node-fetch,我使用node-fetch@^2.6.1@types/node-fetch@2.5.12

安装:

npm install node-fetch@^2.6.1 npm install --save-dev @types/node-fetch@2.5.12

【讨论】:

  • 这是研究一堆 StackOverflow 答案后的第一个有效答案。谢谢!
猜你喜欢
  • 2013-08-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-19
  • 2020-06-15
  • 1970-01-01
  • 2014-04-29
  • 2021-11-03
相关资源
最近更新 更多