Socket.io-client: [버그] 전역이 μ •μ˜λ˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€.

에 λ§Œλ“  2017λ…„ 10μ›” 24일  Β·  49μ½”λ©˜νŠΈ  Β·  좜처: socketio/socket.io-client

μ°Έκ³  : 지원 질문의 경우 λ‹€μŒ 채널 쀑 ν•˜λ‚˜λ₯Ό μ‚¬μš©ν•˜μ‹­μ‹œμ˜€: stackoverflow λ˜λŠ” slack

μ›ν•˜λŠ” μž‘μ—…:

- [x] report a *bug*
- [ ] request a *feature*

ν˜„μž¬ 행동

socket.io-clientλŠ” node.js의 global var에 λŒ€ν•œ μ’…μ†μ„±μœΌλ‘œ 인해 @angular/[email protected] rc.3 μ—μ„œ μž‘λ™ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.
( [email protected] μ—μ„œ 온 것 κ°™μ§€λ§Œ ν•΄λ‹Ή 버전을 μœ μ§€ κ΄€λ¦¬ν•˜λŠ” μ‚¬λžŒμ„ 찾을 수 μ—†μŒ)

μž¬ν˜„ 단계(ν˜„μž¬ λ™μž‘μ΄ 버그인 경우)

https://github.com/angular/angular-cli/issues/8160 μ°Έμ‘°

μ˜ˆμƒλ˜λŠ” 행동

μ„€μ •

  • 운영 체제:
  • λΈŒλΌμš°μ €:
  • socket.io 버전: 2.0.4

κ°€μž₯ μœ μš©ν•œ λŒ“κΈ€

https://github.com/angular/angular-cli/issues/8160#issuecomment -386153833에 λ”°λ₯΄λ©΄:

λ‹€μŒ polyfills.ts 을 μΆ”κ°€ν•˜λ©΄ Angular@6 μ—μ„œ μž‘λ™ν•©λ‹ˆλ‹€.

// Add global to window, assigning the value of window itself.
(window as any).global = window;

μ–΄λ–€ κ²½μš°λ“  이 λ¬Έμ œλŠ” IMO둜 ν•΄κ²°λ˜μ–΄μ„œλŠ” μ•ˆ λ©λ‹ˆλ‹€. socket.io-clientλŠ” global 에 λŒ€ν•œ μ•”μ‹œμ  쒅속성을 μ œκ±°ν•˜κ±°λ‚˜ 폴리필이 ν•„μš”ν•˜λ‹€λŠ” λ¬Έμ„œλ₯Ό μž‘μ„±ν•΄μ•Ό ν•©λ‹ˆλ‹€. 각도 μ‚¬μš©μž)

(BTW μ΅œμ‹  [email protected] 의 μΆœμ²˜λŠ” μ–΄λ””μž…λ‹ˆκΉŒ? μ œκ°€ λ„μ™€λ“œλ¦΄ 수 μžˆμŠ΅λ‹ˆλ‹€.)

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

λ˜ν•œ ν˜„μž¬ 이 λ¬Έμ œμ— 직면해 μžˆμŠ΅λ‹ˆλ‹€.

이제 https://github.com/angular/angular-cli/issues/8160 이 ν•΄κ²°λ˜μ—ˆμœΌλ―€λ‘œ 이 문제λ₯Ό μ’…λ£Œν•  수 μžˆμŠ΅λ‹ˆκΉŒ? 감사 ν•΄μš”!

angular/cli > 6μ—μ„œ 전역을 영ꡬ적으둜 μ œκ±°ν–ˆκΈ° λ•Œλ¬Έμ— κ·Έλ ‡κ²Œ μƒκ°ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.
λ‹€μ‹œ 쑰사λ₯Ό μ‹œμž‘ν•΄ μ£Όμ‹œκ² μŠ΅λ‹ˆκΉŒ? https://github.com/angular/angular-cli/issues/9827

브,
μΌ€λΉˆ

Angular CLIκ°€ 문제λ₯Ό ν•΄κ²°ν•˜κ±°λ‚˜ node λͺ…령을 μž¬μ •μ˜ν•  수 μžˆμ„ λ•ŒκΉŒμ§€ ν•΄κ²° 방법은 tsconfig.app.json 의 경둜 μ„Ήμ…˜μ— socket.io-client 슬림 νŒŒμΌμ„ μΆ”κ°€ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

"paths": {
      ....
      "socket.io-client": ["../node_modules/socket.io-client/dist/socket.io.slim.js"]
}

ν˜„μž¬ μž‘λ™ν•˜λ”λΌλ„ https://github.com/angular/angular-cli/issues/9827#issuecomment -369578814 에 λ”°λ₯΄λ©΄ Angular@6 의 λ¬Έμ œκ°€ λ©λ‹ˆλ‹€.

"[이것은] 일반적으둜 μ „ν˜€ μž‘λ™ν•˜μ§€ μ•Šμ•„μ•Ό ν•˜λŠ” λΈŒλΌμš°μ € μ½”λ“œκ°€ 맀우 νŠΉμ •ν•œ λ„κ΅¬λ‘œ λΉŒλ“œλœ κ²½μš°μ—λ§Œ μž‘λ™ν•˜λŠ” 상황을 λ§Œλ“­λ‹ˆλ‹€. 이것은 쒋은 상황이 μ•„λ‹™λ‹ˆλ‹€."

Angular 6 RC5μ—μ„œ κ³ μž₯λ‚œ 것을 ν™•μΈν–ˆμŠ΅λ‹ˆλ‹€. 아무도 ν•΄κ²° 방법을 μ•Œκ³  μžˆμŠ΅λ‹ˆκΉŒ?

@ngervasi μš°λ¦¬λŠ” λ‚΄κ°€ 여기에 μ–ΈκΈ‰ν•œ κ²ƒμ²˜λŸΌ ν•΄λƒˆμŠ΅λ‹ˆλ‹€: https://github.com/socketio/socket.io-client/issues/1166#issuecomment -379225639

λ‚˜λŠ” μ‹œλ„ν–ˆλ‹€:

{ "extends": "../tsconfig.json", "compilerOptions": { "outDir": "../out-tsc/app", "module": "es2015", "baseUrl": "", "types": [] }, "exclude": [ "test.ts", "**/*.spec.ts" ], "paths": { "socket.io-client": ["../node_modules/socket.io-client/dist/socket.io.slim.js"] } }

ν•˜μ§€λ§Œ Angular 6RC5μ—μ„œλŠ” μž‘λ™ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. μ—¬μ „νžˆ 였λ₯˜κ°€ λ°œμƒν•©λ‹ˆλ‹€.

is-buffer.js:4 Uncaught ReferenceError: global is not defined at Object../node_modules/socket.io-client/node_modules/socket.io-parser/is-buffer.js (is-buffer.js:4) at __webpack_require__ (bootstrap:74) at Object../node_modules/socket.io-client/node_modules/socket.io-parser/binary.js (binary.js:8) at __webpack_require__ (bootstrap:74) at Object../node_modules/socket.io-client/node_modules/socket.io-parser/index.js (index.js:8) at __webpack_require__ (bootstrap:74) at Object../node_modules/socket.io-client/lib/index.js (index.js:7) at __webpack_require__ (bootstrap:74) at Object../src/app/_services/websocket.service.ts (log.service.ts:5) at __webpack_require__ (bootstrap:74)

https://github.com/angular/angular-cli/issues/8160#issuecomment -386153833에 λ”°λ₯΄λ©΄:

λ‹€μŒ polyfills.ts 을 μΆ”κ°€ν•˜λ©΄ Angular@6 μ—μ„œ μž‘λ™ν•©λ‹ˆλ‹€.

// Add global to window, assigning the value of window itself.
(window as any).global = window;

μ–΄λ–€ κ²½μš°λ“  이 λ¬Έμ œλŠ” IMO둜 ν•΄κ²°λ˜μ–΄μ„œλŠ” μ•ˆ λ©λ‹ˆλ‹€. socket.io-clientλŠ” global 에 λŒ€ν•œ μ•”μ‹œμ  쒅속성을 μ œκ±°ν•˜κ±°λ‚˜ 폴리필이 ν•„μš”ν•˜λ‹€λŠ” λ¬Έμ„œλ₯Ό μž‘μ„±ν•΄μ•Ό ν•©λ‹ˆλ‹€. 각도 μ‚¬μš©μž)

(BTW μ΅œμ‹  [email protected] 의 μΆœμ²˜λŠ” μ–΄λ””μž…λ‹ˆκΉŒ? μ œκ°€ λ„μ™€λ“œλ¦΄ 수 μžˆμŠ΅λ‹ˆλ‹€.)

μ–΄λŠ 것이 더 λ‚˜μ€ μˆ˜μ •μž…λ‹ˆκΉŒ? https://github.com/socketio/socket.io-client/issues/1166#issuecomment -379225639(tsconfig의 κ²½λ‘œμ— μΆ”κ°€) λ˜λŠ” https://github.com/socketio/socket.io-client/issues/1166 #issuecomment -386195105(κΈ€λ‘œλ²Œμ— ν• λ‹Ή)?

두 μ˜΅μ…˜ λͺ¨λ‘ Angular CLI둜 μƒμ„±λœ Angular v6 ν”„λ‘œμ νŠΈμ—μ„œ μ €μ—κ²Œ νš¨κ³Όμ μ΄μ—ˆμŠ΅λ‹ˆλ‹€.

@amitport has-binary2 νŒ¨ν‚€μ§€μ˜ μ†ŒμŠ€λŠ” λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€. https://github.com/darrachequesne/has-binary

그것이 μœ μΌν•œ 사건이 아닐지 κ±±μ •λ˜μ§€λ§Œ.

@darrenmothersele 은 μ •ν™•νžˆ ν•˜λ‚˜μ˜ "더 λ‚˜μ€"이 μžˆλ‹€κ³  μƒκ°ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. 'global'을 μΆ”κ°€ν•˜λ©΄ λ‹€λ₯Έ λΌμ΄λΈŒλŸ¬λ¦¬μ— λΆ€μž‘μš©μ΄ μžˆμ„ 수 μžˆμ§€λ§Œ 'slim' νŒŒμΌμ„ μΆ”κ°€ν•˜λ©΄ λ²ˆλ“€ 크기에 뢀정적인 영ν–₯을 λ―ΈμΉ  수 μžˆμŠ΅λ‹ˆλ‹€(λ°˜λ“œμ‹œ κ·Έλ ‡μ§€λŠ” μ•ŠμŒ)

@darrachequesne 이 PR을 μΆ”κ°€ν–ˆμŠ΅λ‹ˆλ‹€ https://github.com/darrachequesne/has-binary/pull/4 (μ‹œμž‘μž…λ‹ˆλ‹€ :))

λ‚˜λŠ” 두 가지 μ†”λ£¨μ…˜κ³Ό ν˜„μž¬ Angular 6.0.0 ν”„λ‘œμ νŠΈλ₯Ό λͺ¨λ‘ μ‹œλ„ν–ˆμ§€λ§Œ 아무 것도 μž‘λ™ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. tsconfig.app.json에 경둜 ν•­λͺ©μ„ μΆ”κ°€ν•˜κ³  polyfills.ts에 ν•­λͺ©μ„ μΆ”κ°€ν–ˆμ§€λ§Œ μ—¬μ „νžˆ ν¬λ‘¬μ—μ„œ λ™μΌν•œ 였λ₯˜κ°€ λ°œμƒν•©λ‹ˆλ‹€.

μ—¬κΈ°μ—μ„œλ„ λ§ˆμ°¬κ°€μ§€λ‘œ tsconfig μ†”λ£¨μ…˜μ€ ng cli 6μ—μ„œ μž‘λ™ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

// 창에 μ „μ—­ 값을 μΆ”κ°€ν•˜μ—¬ μ°½ 자체의 값을 ν• λ‹Ήν•©λ‹ˆλ‹€.
(λͺ¨λ“  μ°½).global = μ°½;

λ‚˜λ₯Ό μœ„ν•΄ μΌν•˜κ³ μžˆλ‹€
감사 ν•΄μš”.

μ €μ—κ²Œλ„ νš¨κ³Όκ°€ μžˆμŠ΅λ‹ˆλ‹€! 감사 ν•΄μš”!

그것은 λ‚˜λ₯Ό μœ„ν•΄ λ„ˆλ¬΄ μž‘λ™ν•©λ‹ˆλ‹€! 정말 κ°μ‚¬ν•©λ‹ˆλ‹€ ! :λ””

(window as any).global = window; 어디에 λ„£μ—ˆμŠ΅λ‹ˆκΉŒ?
감사 ν•΄μš”.

μ•ˆλ…•ν•˜μ„Έμš”,

λ°”λ‘œ κ±°κΈ°(μ‚¬μ§„μ—μ„œ).

2018-05-17 21:07 GMT+02:00 Alberto Basaglia [email protected] :

(창을 κ·ΈλŒ€λ‘œ) 어디에 λ‘μ—ˆμŠ΅λ‹ˆκΉŒ?.global = window; ?
감사 ν•΄μš”.

β€”
당신이 λŒ“κΈ€μ„ λ‹¬μ•˜κΈ° λ•Œλ¬Έμ— 이것을 λ°›λŠ” κ²ƒμž…λ‹ˆλ‹€.
이 이메일에 직접 λ‹΅μž₯ν•˜κ³  GitHubμ—μ„œ ν™•μΈν•˜μ„Έμš”.
https://github.com/socketio/socket.io-client/issues/1166#issuecomment-389975067 ,
λ˜λŠ” μŠ€λ ˆλ“œ μŒμ†Œκ±°
https://github.com/notifications/unsubscribe-auth/APZTlGpMwMpnAscifHT2ZQrRUSJqLejCks5tzcp3gaJpZM4QD_kq
.

--

μ•„λ₯΄λ…Έ νˆ¬μ‹œ 바싀리에프
DΓ©veloppeur μ›Ή 전체 μŠ€νƒ chez Leaf μ›Ή μ‚¬μ΄νŠΈ

μ‚¬μ΄νŠΈ μ›Ή : www.leaf-website.esy.es http://www.leaf-website.esy.es
메일 : .tussy.
μ „ν™” : 07 77 83 29 44

어디에 λ‘μ…¨μ–΄μš”...

이것을 polyfills.ts 에 λ„£μœΌμ‹­μ‹œμ˜€.

(window as any).global = window

라인 63κ³Ό 70 사이

2018-05-31 18:31 GMT+02:00 Bibhas Bhattacharya [email protected] :

어디에 λ‘μ…¨μ–΄μš”...

이것을 polyfills.ts에 λ„£μœΌμ‹­μ‹œμ˜€.

(λͺ¨λ“  μ°½).global = μ°½

β€”
당신이 λŒ“κΈ€μ„ λ‹¬μ•˜κΈ° λ•Œλ¬Έμ— 이것을 λ°›λŠ” κ²ƒμž…λ‹ˆλ‹€.
이 이메일에 직접 λ‹΅μž₯ν•˜κ³  GitHubμ—μ„œ ν™•μΈν•˜μ„Έμš”.
https://github.com/socketio/socket.io-client/issues/1166#issuecomment-393592879 ,
λ˜λŠ” μŠ€λ ˆλ“œ μŒμ†Œκ±°
https://github.com/notifications/unsubscribe-auth/APZTlPci9GKE3R8lwc1g3qfqWODeXIPiks5t4Br1gaJpZM4QD_kq
.

--

μ•„λ₯΄λ…Έ νˆ¬μ‹œ 바싀리에프
DΓ©veloppeur μ›Ή 전체 μŠ€νƒ chez Leaf μ›Ή μ‚¬μ΄νŠΈ

μ‚¬μ΄νŠΈ μ›Ή : www.leaf-website.esy.es http://www.leaf-website.esy.es
메일 : .tussy.
μ „ν™” : 07 77 83 29 44

@amitport μ œκ³΅ν•œ ν•΄κ²° 방법에 κ°μ‚¬λ“œλ¦½λ‹ˆλ‹€!! @AngularTeam , μ–΄λ–»κ²Œ 계속 λͺ¨λ“  것을 κΉ¨λœ¨λ¦¬λŠ” κ²λ‹ˆκΉŒ :/ 당신은 rxjs νŒ€μ— μ‚¬λžŒλ“€μ„ ν¬ν•¨μ‹œν‚€κΈ°κΉŒμ§€ ν–ˆκ³  κ°‘μžκΈ° rxjs도 버전 λ³€κ²½μœΌλ‘œ λͺ¨λ“  것을 κΉ¨λœ¨λ ΈμŠ΅λ‹ˆλ‹€... 첫 번째 μ•ˆμ •μ μΈ 릴리슀 μ΄ν›„λ‘œ angularλ₯Ό λ”°λΌμž‘μ•˜κ³  λ‹Ήμ‹ μ˜ λŠ₯λ ₯에 λ†€λžμŠ΅λ‹ˆλ‹€. 각 λ¦΄λ¦¬μŠ€μ—μ„œ λͺ¨λ“  것을 κΉ¨λŠ” λŠ₯λ ₯.

@LucasFrecia Angularκ°€ μ•„λ‹Œ socket.io λ¬Έμ œμž…λ‹ˆλ‹€. AngularλŠ” 버전 6(μ£Όμš” λΈŒλ ˆμ΄ν‚Ή 릴리슀둜 ν‘œμ‹œλ¨)μ—μ„œ 이λ₯Ό 숨기기 μœ„ν•΄ μ€‘μ§€ν•˜μ—¬ 쒋은 κ²°κ³Όλ₯Ό μ–»μ—ˆμŠ΅λ‹ˆλ‹€.

https://github.com/webmodules/blob(engine.io-parser μ—μ„œ μ‚¬μš©)에 λŒ€ν•΄ 2μ£Ό 전에 https://github.com/webmodules/blob/pull/14 에 또 λ‹€λ₯Έ pull μš”μ²­μ„ μΆ”κ°€ν–ˆμŠ΅λ‹ˆλ‹€.

응닡이 μ—†μŠ΅λ‹ˆλ‹€. μ—¬κΈ°μ—μ„œ 병합할 수 μžˆλŠ” μ‚¬λžŒμ΄ μžˆμŠ΅λ‹ˆκΉŒ? @darrachequesne @rauchg @nkzawa?

(window as any).global = window μΆ”κ°€ λ‚˜λ₯Ό μœ„ν•΄ μΌν•œ polyfills.ts

@amitport tks.
잘 μž‘λ™ν•©λ‹ˆλ‹€

polyfills.ts νŒŒμΌμ— (window as any).global = windowλ₯Ό λ„£μŠ΅λ‹ˆλ‹€.
localhostμ—μ„œ ReferenceError: global is not defined λ₯Ό μ œκ³΅ν•˜μ§€ μ•Šμ§€λ§Œ ν…ŒμŠ€νŠΈ λͺ©μ μœΌλ‘œ http-server둜 ν”„λ‘œλ•μ…˜ λΉŒλ“œλ₯Ό μ‹€ν–‰ν•˜λ €κ³  ν•˜λ©΄ 이 였λ₯˜κ°€ λ°œμƒν•©λ‹ˆλ‹€.
μ™œ 이런 일이 μΌμ–΄λ‚˜λŠ”μ§€μ— λŒ€ν•œ λ‹¨μ„œκ°€ μžˆμŠ΅λ‹ˆκΉŒ?
정말 κΈ‰ν•΄μš”!

μ•ˆλ…•ν•˜μ„Έμš” @gupta82anish ,
(window as any).global = window; $ νŒŒμΌμ— pollyfills.ts νŒŒμΌμ„ λ„£κ³  localhost(개발)μ—μ„œ ν”„λ‘œμ νŠΈλ₯Ό μ‹€ν–‰ν•˜κ³  ν”„λ‘œλ•μ…˜μš©μœΌλ‘œ λΉŒλ“œν–ˆλŠ”λ° 였λ₯˜κ°€ λ°œμƒν•˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€.
그것은 맀λ ₯처럼 μž‘λ™ν–ˆμŠ΅λ‹ˆλ‹€.

(window as any).global = window; in pollyfills.ts ν•΄κ²° 방법은 Angular Core 6.1.0μ—μ„œ μž‘λ™ν•˜λŠ” 것 κ°™μŠ΅λ‹ˆλ‹€. socket.ioκ°€ 곧 μ—…λ°μ΄νŠΈλ˜κΈ°λ₯Ό λ°”λžλ‹ˆλ‹€.

(λͺ¨λ“  μ°½).global = μ°½; pollyfills.tsμ—μ„œλ„ μ €μ—κ²Œ νš¨κ³Όμ μ΄μ—ˆμŠ΅λ‹ˆλ‹€!!

(window as any).global = window;
μ•„μ£Ό κΉ”λ”ν•œ μ†”λ£¨μ…˜μž…λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ 일을 ν•˜λŠ” μ˜¬λ°”λ₯Έ λ°©λ²•μž…λ‹ˆκΉŒ?

@avinexus7 일을 ν•˜λŠ” μ˜¬λ°”λ₯Έ 방법이 μ•„λ‹™λ‹ˆλ‹€. socket.io-client 의 λ―Έν•΄κ²° λ¬Έμ œμ— λŒ€ν•œ ν•΄κ²° λ°©λ²•μž…λ‹ˆλ‹€. λΈŒλΌμš°μ €μ— μ‘΄μž¬ν•˜μ§€ μ•ŠλŠ” 'κΈ€λ‘œλ²Œ' 개체의 μ‚¬μš©μž…λ‹ˆλ‹€.

(AFAIK, 아무도 이 문제λ₯Ό ν•΄κ²°ν•˜κΈ° μœ„ν•΄ λ…Έλ ₯ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. λ¬΄μ‹œλ¨: https://github.com/socketio/engine.io-parser/issues/99 및 https://github.com/webmodules/blob/pull μ°Έμ‘°) /14)

@amitport NPM μ§€μ›νŒ€μ— μ—°λ½ν•˜μ—¬ blob νŒ¨ν‚€μ§€μ˜ μƒˆ 버전을 κ²Œμ‹œν•  수 μžˆλŠ” κΆŒν•œμ„ λΆ€μ—¬ν•΄ μ£Όμ‹œκ² μŠ΅λ‹ˆκΉŒ?

@darrachequesne - μ™„λ£Œ, NPM에 μš”μ²­μ„ μ œμΆœν–ˆμŠ΅λ‹ˆλ‹€.

(window as any).global = window
λ˜λŠ”
(window as any) = window
polyfills.ts νŒŒμΌμ— μœ„μ˜ μ½”λ“œλ₯Ό μΆ”κ°€ν•©λ‹ˆλ‹€.

angular/angular-cli#8160(주석) 에 λ”°λ₯΄λ©΄:

λ‹€μŒ polyfills.ts 을 μΆ”κ°€ν•˜λ©΄ Angular@6 μ—μ„œ μž‘λ™ν•©λ‹ˆλ‹€.

// Add global to window, assigning the value of window itself.
(window as any).global = window;

μ–΄λ–€ κ²½μš°λ“  이 λ¬Έμ œλŠ” IMO둜 ν•΄κ²°λ˜μ–΄μ„œλŠ” μ•ˆ λ©λ‹ˆλ‹€. socket.io-clientλŠ” global 에 λŒ€ν•œ μ•”μ‹œμ  쒅속성을 μ œκ±°ν•˜κ±°λ‚˜ 폴리필이 ν•„μš”ν•˜λ‹€λŠ” λ¬Έμ„œλ₯Ό μž‘μ„±ν•΄μ•Ό ν•©λ‹ˆλ‹€. 각도 μ‚¬μš©μž)

(BTW μ΅œμ‹  [email protected] 의 μΆœμ²˜λŠ” μ–΄λ””μž…λ‹ˆκΉŒ? μ œκ°€ λ„μ™€λ“œλ¦΄ 수 μžˆμŠ΅λ‹ˆλ‹€.)

예, 이것은 μ €μ—κ²Œλ„ νš¨κ³Όμ μ΄μ—ˆμŠ΅λ‹ˆλ‹€. κ°μ‚¬ν•©λ‹ˆλ‹€.

어디에 λ‘μ…¨μ–΄μš”...

이것을 polyfills.ts 에 λ„£μœΌμ‹­μ‹œμ˜€.

(window as any).global = window

@bibhas2 μ’‹μ•„μš”! λ‚˜λ₯Ό μœ„ν•΄ μΌν–ˆλ‹€

https://github.com/socketio/engine.io-parser/releases/tag/2.1.3 이 λ¦΄λ¦¬μŠ€λ˜μ–΄ μˆ˜μ •λ  수 있음(νŒ¨ν‚€μ§€ 잠금 없이 socket.io-clientλ₯Ό λ‹€μ‹œ μ„€μΉ˜ν•΄μ•Ό ν•  수 있음)

μž‘μ—…ν•˜μ§€ μ•ŠμŒ
β”œβ”€ 엔진. [email protected]
└─ μ†ŒμΌ“. [email protected]

@kartikupadhyay90 μ„ΈλΆ€ 정보λ₯Ό μΆ”κ°€ν•  수 μžˆμŠ΅λ‹ˆκΉŒ?

λ‚΄ ReactNative μ•±μ—μ„œ 2.2.0 둜 μ—…κ·Έλ ˆμ΄λ“œν•œ ν›„ λ‚΄ socket.io μΈμŠ€ν„΄μŠ€κ°€ μ„œλ²„μ—μ„œ μ•Œλ¦Όμ„ 받지 λͺ»ν•©λ‹ˆλ‹€. 2.1.1 둜 λ‹€μš΄κ·Έλ ˆμ΄λ“œν•΄μ•Ό ν–ˆμŠ΅λ‹ˆλ‹€.

@alimek κ·€ν•˜μ˜ 버그가 이 λ¬Έμ œμ™€ κ΄€λ ¨λ˜μ–΄ μžˆλ‹€κ³  ν™•μ‹ ν•˜μ‹­λ‹ˆκΉŒ? μžμ„Έν•œ λ‚΄μš©μ„ μΆ”κ°€ν•˜μ‹­μ‹œμ˜€. 그렇지 μ•ŠμœΌλ©΄ μƒˆ 문제λ₯Ό κ²Œμ‹œν•˜μ‹­μ‹œμ˜€.

@amitport 그것이 이전 버전과 2.2.0 μ‚¬μ΄μ˜ μœ μΌν•œ λ³€κ²½ 사항이라면 κ·Έλ ‡κ²Œ μƒκ°ν•©λ‹ˆλ‹€.

@alimek rephase : 버그가 이 버그와 _λ™μΌν•œ_ 경우 세뢀정보λ₯Ό μΆ”κ°€ν•˜μ„Έμš”. 그렇지 μ•ŠμœΌλ©΄ μƒˆ 문제λ₯Ό μ—¬μ‹­μ‹œμ˜€(νšŒκ·€μΌ 수 있음).

(BTW, μ €λŠ” 이 라이브러리의 κ΄€λ¦¬μžκ°€ μ•„λ‹™λ‹ˆλ‹€. 문제 μ²˜λ¦¬κ°€ 일반적으둜 μ–΄λ–»κ²Œ μž‘λ™ν•˜λŠ”μ§€μ— λŒ€ν•΄ μ„€λͺ…ν•˜λŠ” κ²ƒλΏμž…λ‹ˆλ‹€. 문제λ₯Ό ν•΄κ²°ν•˜λ €λ©΄ μ‹€ν–‰ κ°€λŠ₯ν•œ μ„ΈλΆ€ 정보λ₯Ό μΆ”κ°€ν•˜κ³  μ μ ˆν•˜κ²Œ κ²Œμ‹œν•΄μ•Ό ν•©λ‹ˆλ‹€.)

λ‚΄ μƒν™©μ—μ„œλŠ” 2.2.0이 "engine.io-client": "~3.3.1"에 μ˜μ‘΄ν•˜λŠ” κ²ƒμœΌλ‘œ 보이며, μ΄λŠ” "engine.io-parser": "~2.1.1"에 μ˜μ‘΄ν•©λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ λ‚΄ μ‹œμŠ€ν…œμ˜ engine.io-parserλŠ” μ—¬μ „νžˆ 'μ „μ—­' λ³€μˆ˜μ— λŒ€ν•œ μ°Έμ‘°λ₯Ό ν¬ν•¨ν•˜λŠ” 2.1.2인 것 κ°™μŠ΅λ‹ˆλ‹€. 이것은 2.1.3μ—μ„œ μˆ˜μ • 된 것 κ°™μ§€λ§Œ npm iλŠ” 2.1.2λ₯Ό λ‹ΉκΈ°λŠ” 것 κ°™μŠ΅λ‹ˆλ‹€.

μΆ”μΈ‘ν•΄μ•Ό ν•œλ‹€λ©΄ 2.1.3의 λ§ˆμ§€λ§‰ λΉŒλ“œκ°€ μ‹€νŒ¨ν–ˆκΈ° λ•Œλ¬Έμ— 2.1.2둜 λ˜λŒμ•„κ°„ 것 κ°™μŠ΅λ‹ˆλ‹€.
https://travis-ci.org/socketio/engine.io-parser

κ·Έ 외에, λ‚˜λŠ” 그것이 λ‚˜λ₯Ό μœ„ν•΄ 이전 버전을 계속 λŒμ–΄ μ˜€λŠ” 이유λ₯Ό μ•Œ 수 μ—†μŠ΅λ‹ˆλ‹€.

Jest + React + Typescript와 λ™μΌν•œ λ¬Έμ œκ°€ 있으며 (window as any).global = window 섀정을 μˆ˜μ •ν•  수 μ—†μŠ΅λ‹ˆλ‹€. polyfills.ts νŒŒμΌμ—λ„ μ½”λ“œλ₯Ό λ„£μ–΄ λ³΄μ•˜μŠ΅λ‹ˆλ‹€.

setupFiles: [
    '<rootDir>/tst/polyfills.ts',
    '<rootDir>/tst/jest.setup.ts',
  ],

λ˜ν•œ Jest의 defineProperty λ©”μ†Œλ“œλ₯Ό μ‚¬μš©ν•˜μ§€λ§Œ μ—¬μ „νžˆ 운이 μ—†μŠ΅λ‹ˆλ‹€.

Object.defineProperty((window as any), 'global', {});

copyProps(window, global);

Jestλ₯Ό μœ„ν•΄ 이 문제λ₯Ό ν•΄κ²°ν•  수 μžˆλŠ” μ‚¬λžŒμ΄ μžˆμŠ΅λ‹ˆκΉŒ? μ•„λ‹ˆλ©΄ 이 μž‘μ—…μ„ μˆ˜ν–‰ν•  수 μžˆλŠ” 방법을 μ•Œκ³  μžˆμŠ΅λ‹ˆκΉŒ? @amitport μ–΄λ–€ 생각이 μžˆμŠ΅λ‹ˆκΉŒ?

감사 ν•΄μš”,

@eldem 및 기타. 이 μŠ€λ ˆλ“œκ°€ κ΄€λ ¨λ˜μ§€ μ•Šμ€ 문제의 일반적인 ν˜Όν•©μ΄ λ˜μ—ˆκΈ° λ•Œλ¬Έμ— 이 μŠ€λ ˆλ“œλ₯Ό λ‹«μŠ΅λ‹ˆλ‹€. global 및 socket.io-client와 κ΄€λ ¨λœ 문제λ₯Ό λ³΄λŠ” μ‚¬λžŒμ΄ 있으면 μž¬μƒμ‚° 지침, μ½˜μ†”μ— ν‘œμ‹œλ˜λŠ” 였λ₯˜, μ‚¬μš©λœ 버전 등에 λŒ€ν•œ μƒˆ 문제λ₯Ό μ—΄μ–΄μ£Όμ„Έμš”.

Ionic4/Angular7 μž‘μ—… - 2.1.1 μ„€μΉ˜ 및 \srcpolyfills.ts 에 (window as any).global = window μΆ”κ°€ μž‘μ—… - κ°μ‚¬ν•©λ‹ˆλ‹€!

μœ„μ˜ λ‚΄ μ§ˆλ¬Έμ— λŒ€ν•΄: socket.io νŒŒμΌμ„ λ³€ν™˜ν•˜λŠ” λ™μ•ˆ Babelμ—μ„œ 였λ₯˜κ°€ λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€. transformIgnore에 μΆ”κ°€ν•˜λ©΄ μ €μ—κ²Œ νš¨κ³Όμ μ΄μ—ˆμŠ΅λ‹ˆλ‹€.

transformIgnorePatterns: [
    '<rootDir>/node_modules/../lib/socket.io.js'
  ]

@amitport λ©”μ„œλ“œ κ°€ μ™„λ²½ν•˜κ²Œ μž‘λ™ν•©λ‹ˆλ‹€.

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