上下文错误需要.js模块(节点提取)加载



我正在做一个网站,我正在与Require.js作斗争。我想要node-fetch包:

const fetch = require('node-fetch');
// Getting avatar of random discord user
const token = process.env.TOKEN;
async function fetchit() {
const response = await fetch(`https://discord.com/api/v9/users/410902667318001684`, {
headers: {
Authorization: `Bot ${token}`
}
})
if (!response.ok) throw new Error(`Error status code: ${response.status}`)
else{
let obj = await response.json()
console.log(obj.avatar)
}

}
fetchit()

我得到这个错误:

Error: Module name "node-fetch" has not been loaded yet for context: _. Use require([])
https://requirejs.org/docs/errors.html#notloaded

我尝试使用const fetch = require(['node-fetch']),但我遇到了另一个错误:

Error: Script error for "node-fetch"
https://requirejs.org/docs/errors.html#scripterror

这是我的HTML脚本标签:<script data-main="script.js" src="require.js">

我该如何修复并使其正常工作?

我使用node-fetch@2.6.6

不能使用Require加载node-fetch。JS。

Require.js是AMD模块的模块加载程序。

node-fetch常见。JS模块(它还依赖于Node.JS提供的API,这些API在浏览器中不可用(。

AMD和Common。JS模块是非常不同的模块格式。即使它们都使用一个名为require的函数,它们的加载程序也不兼容(它们使用不同的函数require(。

(从版本3开始,node-fetch已经转换为ECMAScript模块,但仍然依赖于Node.js,并且仍然与Require.js不兼容(。


请改用浏览器本机Fetch API。node-fetch是一个与之兼容的库,因此您可以在浏览器和Node.js中使用相同的API