require('node-fetch') 给出 ERR_REQUIRE_ESM
require('node-fetch') gives ERR_REQUIRE_ESM
我刚用
const fetch = require('node-fetch')
然后我得到
Error [ERR_REQUIRE_ESM]: require() of ES Module C:\Users\Alex\Desktop\rollbot\node_modules\node-fetch\src\index.js from C:\Users\Alex\Desktop\rollbot\index.js not supported.
Instead change the require of C:\Users\Alex\Desktop\rollbot\node_modules\node-fetch\src\index.js in C:\Users\Alex\Desktop\rollbot\index.js to a
dynamic import() which is available in all CommonJS modules.
{
code: 'ERR_REQUIRE_ESM'
}
我的所有其他包都有效,只有 node-fetch 可以。我应该怎么做才能使用 node-fetch?
来自node-fetch
package readme:
node-fetch is an ESM-only module - you are not able to import it with
require. We recommend you stay on v2 which is built with CommonJS
unless you use ESM yourself. We will continue to publish critical bug
fixes for it.
如果你想 require
它,然后降级到 v2。
您的另一个选择是使用异步 import('node-fetch').then(...)
就我而言,我个人发现 require ('cross-fetch') 更容易。文档在这里:cross-fetch
它可以在 CommonJS 和 ES6 模块中使用。
我发现最新版本的node-fetch
默认改成了ES模块。您可以:
- 用
npm uninstall node-fetch
卸载node-fetch的当前版本
- 安装第二个版本:
npm install node-fetch@2
它对我有用!
2022 年 5 月最新更新
您可能不再需要 node-fetch
。
在最新版本的 Node.js
(18.0.0) 中,默认启用全局提取(实验性)。
const res = await fetch('https://nodejs.org/api/documentation.json');
if (res.ok) {
const data = await res.json();
console.log(data);
}
通过此添加,可以使用以下全局变量:fetch, FormData, Headers, Request, Response
。
You may disable this API with the --no-experimental-fetch
command-line flag.
我刚用
const fetch = require('node-fetch')
然后我得到
Error [ERR_REQUIRE_ESM]: require() of ES Module C:\Users\Alex\Desktop\rollbot\node_modules\node-fetch\src\index.js from C:\Users\Alex\Desktop\rollbot\index.js not supported.
Instead change the require of C:\Users\Alex\Desktop\rollbot\node_modules\node-fetch\src\index.js in C:\Users\Alex\Desktop\rollbot\index.js to a
dynamic import() which is available in all CommonJS modules.
{
code: 'ERR_REQUIRE_ESM'
}
我的所有其他包都有效,只有 node-fetch 可以。我应该怎么做才能使用 node-fetch?
来自node-fetch
package readme:
node-fetch is an ESM-only module - you are not able to import it with require. We recommend you stay on v2 which is built with CommonJS unless you use ESM yourself. We will continue to publish critical bug fixes for it.
如果你想 require
它,然后降级到 v2。
您的另一个选择是使用异步 import('node-fetch').then(...)
就我而言,我个人发现 require ('cross-fetch') 更容易。文档在这里:cross-fetch
它可以在 CommonJS 和 ES6 模块中使用。
我发现最新版本的node-fetch
默认改成了ES模块。您可以:
- 用
npm uninstall node-fetch
卸载node-fetch的当前版本
- 安装第二个版本:
npm install node-fetch@2
它对我有用!
2022 年 5 月最新更新
您可能不再需要 node-fetch
。
在最新版本的 Node.js
(18.0.0) 中,默认启用全局提取(实验性)。
const res = await fetch('https://nodejs.org/api/documentation.json');
if (res.ok) {
const data = await res.json();
console.log(data);
}
通过此添加,可以使用以下全局变量:fetch, FormData, Headers, Request, Response
。
You may disable this API with the
--no-experimental-fetch
command-line flag.