Javascript 使用aws cognito identity js时获取的类型错误

Javascript 使用aws cognito identity js时获取的类型错误,javascript,typescript,amazon-web-services,amazon-cognito,serverless-framework,Javascript,Typescript,Amazon Web Services,Amazon Cognito,Serverless Framework,我正在使用serverless框架和typescript构建一个无服务器应用程序,并使用aws cognito进行用户身份验证。 当我在本地无服务器环境中使用应用程序时一切正常。 我可以注册一个用户,也可以登录该用户以接收jwt令牌 但是当我将代码部署到aws时,它给了我 “消息”:“获取不是一个函数”, 因此,我研究了不同的github问题/堆栈溢出,发现每个人都通过添加global.fetch来建议类似的解决方案 此帖子中的类似解决方案-> 因此,我添加了上述内容,并安装了一个npm节点获取

我正在使用
serverless框架
typescript
构建一个无服务器应用程序,并使用aws cognito进行用户身份验证。 当我在
本地无服务器环境中使用应用程序时
一切正常。 我可以注册一个用户,也可以登录该用户以接收
jwt令牌

但是当我将代码部署到aws时,它给了我
“消息”:“获取不是一个函数”,

因此,我研究了不同的github问题/堆栈溢出,发现每个人都通过添加global.fetch来建议类似的解决方案 此帖子中的类似解决方案->

因此,我添加了上述内容,并安装了一个npm节点获取并推送了代码 但问题是不同的,因为我使用的是typescript,所以不能使用
global.fetch

所以我在当地找到了不同的方法来改变这一点

Way 1 
const globalAny:any = global;
globalAny.fetch = require('node-fetch');

Way 2
(global as any).fetch = require('node-fetch');

Way 3 -> Written at the end of this post. https://stackoverflow.com/questions/48433783/referenceerror-fetch-is-not-defined
当我在本地和AWS LAMDA中以两种方式运行它时,它会以相同的错误失败

TypeError:fetch不是一个函数


因此,我没有选择,正在寻找是否有人可以帮助我。

较新版本的node fetch存在与此线程中可以找到的webpack有关的问题


降级到
节点-fetch@1.7.3
使您的cognito正常工作。

如果项目中使用了webpack,global.fetch将不起作用。在应用程序根级别添加以下库。(建议用于lambda codestart的无服务器web包/任何其他web包)

Way 1 
const globalAny:any = global;
globalAny.fetch = require('node-fetch');

Way 2
(global as any).fetch = require('node-fetch');

Way 3 -> Written at the end of this post. https://stackoverflow.com/questions/48433783/referenceerror-fetch-is-not-defined
require('cross-fetch/polyfill');