Apollo 与 Angular 快速入门:未知错误

Posted

技术标签:

【中文标题】Apollo 与 Angular 快速入门:未知错误【英文标题】:Apollo with Angular Quickstart : Unknown error 【发布时间】:2017-10-19 07:55:23 【问题描述】:

我是网络开发的新手,我完全迷路了。

我想开发一个 Web 应用程序,其后端使用 Django 开发,前端使用 Angular 开发。我希望通过 Apollo 和 GraphQL 来完成后端和前端之间的交互。

考虑到这一点,我开始在 Django 中开发几个简单的模型,并使用 Python 包 graphene 进行一些查询。它似乎运行良好,所以现在我尝试开发一个简单的 Angular 应用程序来呈现 Django 创建的模型的实例。

这就是我卡住的地方。我已经下载了 Angular 教程 (https://github.com/angular/quickstart) 中使用的 Angular Quickstart 来开始测试 Apollo。我在终端中运行了以下命令:

$ git clone https://github.com/angular/quickstart.git
$ cd quickstart
$ npm install

此外,为了安装 Apollo,我运行了以下命令:

$ npm install whatwg-fetch apollo-client apollo-angular graphql-tag --save

最后,为了运行本地服务器,我在终端中输入了$ npm start。这就是引发以下错误的地方:

node_modules/@types/isomorphic-fetch/index.d.ts(8,30): error TS2304: Cannot find name 'fetch'.

我很生气试图解决这个问题,但我没有找到任何关于此的文档,可能是因为我没有广泛的 Web 开发背景。

我正在使用节点 v6.10.3、npm v3.10.10 和 Ubuntu 16.04 LTS。任何解决问题的建议或帮助将不胜感激,谢谢。

【问题讨论】:

【参考方案1】:

您已安装的@types/isomorphic-fetch 的发布(apollo-client 的部门之一)假定您拥有window.fetch 的声明。

TypeScript 的 ~2.3 版本在 dom 库中有该定义,我认为这就是 Apollo 和 @types/isomorphic-fetch 决定以这种方式工作的原因。

有两种解决方案:

安装@types/whatwg-fetch 包(或其他)或自行定义fetch 将 TypeScript 更新到 2.3.X(并在 compilerOptions.lib 中指定了 dom

【讨论】:

【参考方案2】:

您的打字有问题,请尝试安装@types/whatwg-fetch

【讨论】:

以上是关于Apollo 与 Angular 快速入门:未知错误的主要内容,如果未能解决你的问题,请参考以下文章

Apollo的快速入门

Angular Apollo GraphQL watchQuery 与订阅

如何将 Angular/Apollo 客户端与 graphene-django 集成?

网络错误:req.headers.forEach Apollo Client Angular4

快速入门!详解 Angular2 路由的分类及使用!

带有 Apollo 的 Angular graphql