readmeとその爆撃を使用して、ノード8で基本的なコードを試しました。
/home/stephen/dev/gql-play/node_modules/apollo-link-rest/lib/bundle.umd.js:110
if (headers instanceof Headers) {
^
ReferenceError: Headers is not defined
at normalizeHeaders (/home/stephen/dev/gql-play/node_modules/apollo-link-rest/lib/bundle.umd.js:110:28)
at new RestLink (/home/stephen/dev/gql-play/node_modules/apollo-link-rest/lib/bundle.umd.js:259:25)
at Object.<anonymous> (/home/stephen/dev/gql-play/index.js:7:14)
at Module._compile (module.js:635:30)
at Object.Module._extensions..js (module.js:646:10)
at Module.load (module.js:554:32)
at tryModuleLoad (module.js:497:12)
at Function.Module._load (module.js:489:3)
at Function.Module.runMain (module.js:676:10)
at startup (bootstrap_node.js:187:16)
以下に添付のソースコード
gql-play.zip
➜ gql-play node -v
v8.9.3
グローバルオブジェクトにヘッダーを配置することで、この問題を回避することができました。
const fetch = require('node-fetch');
global.Headers = fetch.Headers;
私はここでそれを再現しようとしました: https :
あなたの例を使用すると、同じ問題が発生し、ノード6.1でも同じ結果を試しました。
node9で実行していると思いますか? ノードをダウングレードして、それが再現されるかどうかを確認する必要があります。 他のノードに問題があります。
ノード9のグローバルにヘッダーを追加しましたか? https://runkit.com/trashhalo/5a4d5779ceaa39001278edbe9.3.0はまだエラーが発生しているようです
@trashhalo私は
ちょっと@ trashhalo-私はちょうどあなたのテストアプリを実行しました、そしてあなたは正しいです、ノードスクリプトとして直接link-restを実行しようとすると、私は同じヘッダーの欠落の問題を受け取ります。
私は次のことを行うことでその問題を乗り越えることができました:
global.Headers = global.Headers || require("fetch-headers");
しかし、明らかに、それは問題を埋め尽くしています。 -残念ながら、それを行うと、 ReferenceError: gql is not defined
エラーが発生します
純粋なノード環境で呼び出されたときにlink-restが機能することを期待しているのか完全にはわかりませんか? 考え?
大丈夫。 問題が機能することを前提として、問題をポリフィルしてもかまいません。
こんにちは、みんな、
ノードv8.94
OS X 10.11.6
Next.JS v5.0.1-canary.4
Advanced Exampleをインストールし、すべての依存関係を最新のものに更新しましたが、すべて問題ありませんでした。
次に、 src/SearchShow.js
とサポート<ApolloProvider>
(およびdeps)を、Next.JSで実行されている新しいプロジェクトにコピーすると、問題が発生しました。
@fbarthoのポリフィルを適用しReferenceError: gql is not defined
エラーは表示されません。
ノードv9.7.1でも同じ問題が発生します。
ターゲットランタイム環境用にHeaders
をポリフィルする必要があるかもしれないことをドキュメントに追加します。さらに、#93でさらに拡張について説明しているので、このチケットを閉じます。
最も参考になるコメント
グローバルオブジェクトにヘッダーを配置することで、この問題を回避することができました。