我创建了一个标准的应用程序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
但我想知道如何妥善解决这个问题。
答案 0 :(得分:1)
我遇到了同样的问题,但在一个具有以下依赖项的项目中解决了这个问题:
isomorphic-fetch
typings in dom
)这需要对我对Github nativescript-dev-typescript issue 19的回复中描述的tsconfig.json
和references.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应该提供另外一个他们不包含的定义基本文件中的请求定义