Apollo-link-rest: ReferenceError: 헀더가 μ •μ˜λ˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€.

에 λ§Œλ“  2018λ…„ 01μ›” 03일  Β·  10μ½”λ©˜νŠΈ  Β·  좜처: apollographql/apollo-link-rest

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;

λͺ¨λ“  10 λŒ“κΈ€

μ „μ—­ κ°œμ²΄μ— 헀더λ₯Ό λ„£μ–΄ 이 문제λ₯Ό ν•΄κ²°ν•  수 μžˆμ—ˆμŠ΅λ‹ˆλ‹€.

const fetch = require('node-fetch');
global.Headers = fetch.Headers;

λ‚˜λŠ” 운 없이 https://codesandbox.io/s/0x4wx2or0vμ—μ„œ 그것을 μž¬ν˜„ν•˜λ €κ³  μ‹œλ„ν–ˆμŠ΅λ‹ˆλ‹€. μ‹œλ„ ν•  수 μžˆμŠ΅λ‹ˆκΉŒ?

κ·€ν•˜μ˜ 예λ₯Ό μ‚¬μš©ν•˜μ—¬ λ…Έλ“œ 6.1μ—μ„œλ„ λ™μΌν•œ κ²°κ³Όλ₯Ό μ‹œλ„ν•œ λ™μΌν•œ λ¬Έμ œκ°€ μžˆμŠ΅λ‹ˆλ‹€.

λ‚˜λŠ” node9둜 μ‹€ν–‰ν•˜κ³  μžˆλ‹€κ³  μƒκ°ν•©λ‹ˆκΉŒ? λ…Έλ“œλ₯Ό λ‹€μš΄κ·Έλ ˆμ΄λ“œν•˜κ³  μž¬μƒμ„±λ˜λŠ”μ§€ 확인해야 ν•©λ‹ˆλ‹€. λ‹€λ₯Έ λ…Έλ“œ λ¬Έμ œκ°€ μžˆμŠ΅λ‹ˆλ‹€.

λ…Έλ“œ 9의 전역에 헀더λ₯Ό μΆ”κ°€ν–ˆμŠ΅λ‹ˆκΉŒ? https://runkit.com/trashhalo/5a4d5779ceaa39001278edbe 9.3.0은 μ—¬μ „νžˆ β€‹β€‹μ˜€λ₯˜κ°€ λ°œμƒν•˜λŠ” 것 κ°™μŠ΅λ‹ˆλ‹€.

@trashhalo μ €λŠ”

μ•ˆλ…•ν•˜μ„Έμš” @trashhalo -- 방금 ν…ŒμŠ€νŠΈ 앱을 μ‹€ν–‰ν–ˆλŠ”λ° λ§žμŠ΅λ‹ˆλ‹€. link-restλ₯Ό λ…Έλ“œ 슀크립트둜 직접 μ‹€ν–‰ν•˜λ €κ³  ν•  λ•Œ λ™μΌν•œ 헀더 λˆ„λ½ λ¬Έμ œκ°€ λ°œμƒν•©λ‹ˆλ‹€.

λ‹€μŒμ„ μˆ˜ν–‰ν•˜μ—¬ ν•΄λ‹Ή 문제λ₯Ό ν•΄κ²°ν•  수 μžˆμ—ˆμŠ΅λ‹ˆλ‹€.

global.Headers = global.Headers || require("fetch-headers");

κ·ΈλŸ¬λ‚˜ λΆ„λͺ…νžˆ, 그것은 문제λ₯Ό ν΄λ¦¬ν•„λ§ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. -- λΆˆν–‰νžˆλ„ κ·Έλ ‡κ²Œ ν•  λ•Œ ReferenceError: gql is not defined 였λ₯˜κ°€ λ°œμƒν•©λ‹ˆλ‹€.

순수 λ…Έλ“œ ν™˜κ²½μ—μ„œ 호좜될 λ•Œ link-restκ°€ μž‘λ™ν•  κ²ƒμœΌλ‘œ κΈ°λŒ€ν•˜λŠ”μ§€ μ™„μ „νžˆ ν™•μ‹ ν•˜μ§€ λͺ»ν•©λ‹ˆκΉŒ? 생각?

μ•„, κ·Έλž˜μš”. λ¬Έμ œκ°€ μž‘λ™ν•œλ‹€κ³  κ°€μ •ν•˜λ©΄ polyfilling에 μ‹ κ²½ 쓰지 μ•ŠμŠ΅λ‹ˆλ‹€.

μ•ˆλ…• λͺ¨λ‘,

λ…Έλ“œ v8.94
OS X 10.11.6
Next.JS v 5.0.1-canary.4

Advanced Example을 μ„€μΉ˜ν•˜κ³  λͺ¨λ“  쒅속성을 μ΅œμ‹ μœΌλ‘œ μ—…λ°μ΄νŠΈν–ˆμœΌλ©° λͺ¨λ‘ μž˜λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

그런 λ‹€μŒ src/SearchShow.js 및 지원 <ApolloProvider> (및 deps)을 Next.JSμ—μ„œ μ‹€ν–‰λ˜λŠ” μƒˆ ν”„λ‘œμ νŠΈμ— λ³΅μ‚¬ν•˜κ³  λ¬Έμ œκ°€ λ‚˜νƒ€λ‚¬μŠ΅λ‹ˆλ‹€.

@fbartho 의 polyfill을 적용 ReferenceError: gql is not defined 였λ₯˜κ°€ ν‘œμ‹œλ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

도움이 되기λ₯Ό 바라며 ν•΄λ‹Ή ν”„λ‘œμ νŠΈλ₯Ό μ—¬κΈ°μ—μ„œ μ‚¬μš©ν•  수

λ…Έλ“œ v9.7.1κ³Ό λ™μΌν•œ λ¬Έμ œκ°€ μžˆμŠ΅λ‹ˆλ‹€.

λŒ€μƒ λŸ°νƒ€μž„ ν™˜κ²½μ— λŒ€ν•΄ Headers λ₯Ό 폴리필해야 ν•  μˆ˜λ„ μžˆλ‹€λŠ” λ¬Έμ„œλ₯Ό μΆ”κ°€ν•˜κ³  있으며, μΆ”κ°€ κ°œμ„  사항은 #93μ—μ„œ λ…Όμ˜ μ€‘μ΄λ―€λ‘œ 이 티켓을 λ‹«κ² μŠ΅λ‹ˆλ‹€.

이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰