具有ApolloClient问题的NativeScript

时间:2017-01-01 11:15:18

标签: angularjs nativescript typescript-typings apollostack apollo-client

我创建了一个标准的应用程序tns create project --ng运行正常(并添加平台android)

我也想使用graphQL,所以添加了apollo-client和graphql标签:

npm install apollo-client --save
npm install angular2-apollo --save
npm install graphql-tag --save

所以现在当我使用tns build android构建时,我得到的错误是......

node_modules/@types/isomorphic-fetch/index.d.ts(7,5): error TS2300:
Duplicate identifier '"audio"'.

与(从我能看到的)冲突

node_modules/tns-core-modules/declarations.d.ts(25,5): error TS2300:   
Duplicate identifier '"audio"'.
添加apollo-client时会添加

isomorphic-fetch。对打包问题不太确定,但知道如何解决这个问题会很好。

编辑:

查看guide

我在tsconfig.json中将2项设置为false,尽管出现错误但似乎仍在继续......

    "noEmitHelpers": false,
    "noEmitOnError": false

但我想知道如何妥善解决这个问题。

2 个答案:

答案 0 :(得分:1)

我遇到了同样的问题,但在一个具有以下依赖项的项目中解决了这个问题:

这需要对我对Github nativescript-dev-typescript issue 19的回复中描述的tsconfig.jsonreferences.d.ts进行更改。

虽然此设置在使用Angular CLI的浏览器中工作,并使用tns android使用"noEmitOnError": true构建NativeScript而不在tsconfig.json中放松apollo-client,但我必须使用{{1}调试运行时异常调用redux来尝试调用node.js代码导致以下错误:

ReferenceError: process is not defined … /tns_modules/redux/lib/index.js', line: 38, column 4

通过添加global.process = { env: {} };作为main.ts中的第一行来实现这一点,如NativeScript Github issue 2937中所述,由于我缺乏声誉,StackOverflow不允许我链接到分。

答案 1 :(得分:0)

好吧,我看到tns-core-modules / declarations.d.ts是用tns-core-modules / tns-core-modules.base.d.ts导入的,所以实际上Nativescript应该提供另外一个他们不包含的定义基本文件中的请求定义