代码:
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
时出现错误,我安装了该错误,但我仍然收到该错误。
我如何解决这个问题:
卸载node-fetch和类型,
npm uninstall node-fetch
npm uninstall @types/node-fetch
安装任何 2. 版本的
node-fetch
,我将 node-fetch@^2.6.1
与 @types/[email protected]
一起使用
安装:
npm install node-fetch@^2.6.1
npm install --save-dev @types/[email protected]
为什么?
因为 Chalk 已切换到 ESM,因此不支持它的项目必须使用版本 4。阅读此处了解更多信息。
默认情况下,TypeScript 会将您的代码编译为
ES3
JavaScript。这将导致您的导入被编译到 this 中。您可以通过将 tsconfig
中的 target切换为
ES6
或 ES2015
来更改该行为。
这样生成的 JavaScript 将使用
import
而不是 require
并与 [email protected]
一起使用