gpt4 book ai didi

javascript - 使用 typescript 在 Node 项目中导入 Node 获取

转载 作者:行者123 更新时间:2023-12-05 00:27:10 26 4
gpt4 key购买 nike

如何导入 node-fetch打包到我使用 typescript 的 Node 项目中.
我尝试了很多方法......现在我在:

const fetch = (...args) =>
import("node-fetch").then(({ default: fetch }) => fetch(...args));
但我有两个错误:
Cannot redeclare block-scoped variable 'fetch'.
A spread argument must either have a tuple type or be passed to a rest parameter.
当我更改 const fetch =到任何其他名称,如 const fetchIt =它修复了第一个错误但是......我真的必须改变它吗?如何导入 node-fetch以正常方式打包,我可以使用 fetch()方法?在 React 我只是做
import fetch from 'node-fetch';
一切正常...为什么在 node 中这么难项目?

最佳答案

如果您与全局 fetch 有冲突,这表明您拥有 DOM您的 tsconfig.json 中的库启用,例如:

{
"compilerOptions": {
"lib": ["es2021", "dom"]
}
}
我建议 删除 这个。对于 NodeJS 项目,请查看 this回答建议的 tsconfig.json设置取决于 NodeJS 版本。
在此之后,您将能够导入 fetch正如您在问题中所写,并将其分配给名为 fetch 的变量,没有冲突的名称:
import fetch from 'node-fetch';
替代解决方案:如果您需要使用以浏览器为中心构建并需要全局获取的第 3 方库,请查看 isomorphic-fetch 模块,增加了 fetch作为全局函数。
您需要导入一次,以便 fetch可在全局范围内使用:
import 'isomorphic-fetch';
在这种情况下, tsconfig.json 的编译器选项应该包含 dom库。
2022-02-04 更新
较新的 NodeJS 版本提供原生 fetch API 现在,所以上面将不再需要。见 herehere了解更多信息。

关于javascript - 使用 typescript 在 Node 项目中导入 Node 获取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70142391/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com