我构建了一个类来从 API 中获取一些信息并为我的应用构建合适的响应。
我在浏览器上运行的应用程序和在终端上运行的 CLI 应用程序中都使用了这个文件。
当我首先构建浏览器应用程序时,没有导入到 node-fetch。
现在,当我尝试在我的 CLI 应用程序中使用此 .js 文件时,它会返回错误消息,提示 fetch is not defined
。
如果我添加到我的 api 客户端 .js 文件:import fetch from "node-fetch"
那么现在我的浏览器应用程序不能正常工作,打印到控制台:
未捕获的类型错误:无法解析模块说明符“node-fetch”。相对引用必须以“/”、“./”或“../”开头。
有没有办法为两者应用 fetch 和使用相同的文件?
谢谢
最佳答案
对于无法更新 Node 的用例,您可以有条件地导入 Fetch API。
let fetch = globalThis?.fetch;
if (!fetch && process?.versions?.node) {
fetch = (await import('node-fetch')).default;
}
console.log(fetch);
请注意,这使用了 top-level await .
关于javascript - 在浏览器和 Node 中的js文件中使用node-fetch,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72434338/