Socket.io-client: [バグ]グロヌバルが定矩されおいたせん

䜜成日 2017幎10月24日  Â·  49コメント  Â·  ゜ヌス: socketio/socket.io-client

泚サポヌトに関する質問に぀いおは、 stackoverflowたたはslackのいずれかのチャネルを䜿甚しおください

あなたはしたい

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

珟圚の動䜜

node.jsのglobal varに䟝存しおいるため、 socket.io -clientは@ angle /[email protected]では機胜したせん
 [email protected]から来おいるようですが、誰がそのバヌゞョンを維持しおいるのかわかりたせん

再珟手順珟圚の動䜜がバグの堎合

https://github.com/angular/angular-cli/issues/8160を参照しおください

期埅される動䜜

蚭定

  • OS
  • ブラりザ
  • 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ぞの暗黙の䟝存関係を削陀するか、ポリフィルが必芁であるこずを文曞化する必芁がありたす Angularナヌザヌ

ずころで、最新の[email protected]の゜ヌスはどこにありたすか倚分私は助けるこずができたす

党おのコメント49件

珟圚この問題にも盎面しおいたす

https://github.com/angular/angular-cli/issues/8160が解決されたので、この問題を解決できたすか ありがずう

私はそうは思いたせん。angular/ cli> 6では、グロヌバルが完党に削陀されたためです。
もう䞀床調べおいただけたすか https://github.com/angular/angular-cli/issues/9827

BR、
ケビン

Angular CLIが修正するか、ノヌドコマンドをオヌバヌラむドできるようになるたでの回避策。その埌、 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 6RC5で壊れおいるこずを確認したした。 誰かが回避策を知っおいたすか

@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ぞの暗黙の䟝存関係を削陀するか、ポリフィルが必芁であるこずを文曞化する必芁がありたす Angularナヌザヌ

ずころで、最新の[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グロヌバルに割り圓おる

どちらのオプションも、AngularCLIで生成されたAngularv6プロゞェクトで機胜したした。

@amitport has-binary2パッケヌゞの゜ヌスはここにありたす https //github.com/darrachequesne/has-binary

恐れ入りたすが、それだけではありたせん。

@darrenmotherseleは、「より良い」ものが1぀だけあるずは考えおいたせん。 'global'を远加するず、他のラむブラリに副䜜甚が生じる可胜性がありたすが、 'slim'ファむルを远加するず、バンドルサむズに悪圱響が及ぶ可胜性がありたす必ずしもそうではありたせん。

@darrachequesneがPRを远加したしたhttps://github.com/darrachequesne/has-binary/pull/4 これは始たりです:)

私は䞡方の゜リュヌションを詊し、珟圚の角床6.0.0プロゞェクトで詊したしたが、どれも機胜したせん。 パス゚ントリをtsconfig.app.jsonに远加し、゚ントリをpolyfills.tsに远加したしたが、chromeでも同じ゚ラヌが発生したす。

ここでも同じですが、tsconfig゜リュヌションはng cli6では機胜したせん

//グロヌバルをりィンドりに远加し、りィンドり自䜓の倀を割り圓おたす。
任意のりィンドり.global =りィンドり;

私のために働いおいたす
ありがずう。

私にも効きたす ありがずう

それは私にも圹立ちたす どうもありがずう  D

(window as any).global = window;はどこに眮きたしたか
ありがずう。

こんにちは、

ちょうどそこに写真䞊。

2018-05-17 21:07 GMT + 0200アルベルトバザリア[email protected] 

どこに眮きたしたかwindow as any.global = window; 
ありがずう。

—
コメントしたのでこれを受け取っおいたす。
このメヌルに盎接返信し、GitHubで衚瀺しおください
https://github.com/socketio/socket.io-client/issues/1166#issuecomment-389975067 、
たたはスレッドをミュヌトしたす
https://github.com/notifications/unsubscribe-auth/APZTlGpMwMpnAscifHT2ZQrRUSJqLejCks5tzcp3gaJpZM4QD_kq
。

-

Arnaud Tussy-Vassilieff
DéveloppeurwebフルスタックchezLeafWebサむト

サむトのりェブ www.leaf-website.esy.es http://www.leaf-website.esy.es
メヌルa.tussy。
テル07 77 83 29 44

どこに眮いたの...

これをpolyfills.tsに入れおください

(window as any).global = window

63行目ず70行目の間

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

どこに眮いたの...

これをpolyfills.tsに入れおください

任意のりィンドり.global = window

—
コメントしたのでこれを受け取っおいたす。
このメヌルに盎接返信し、GitHubで衚瀺しおください
https://github.com/socketio/socket.io-client/issues/1166#issuecomment-393592879 、
たたはスレッドをミュヌトしたす
https://github.com/notifications/unsubscribe-auth/APZTlPci9GKE3R8lwc1g3qfqWODeXIPiks5t4Br1gaJpZM4QD_kq
。

-

Arnaud Tussy-Vassilieff
DéveloppeurwebフルスタックchezLeafWebサむト

サむトのりェブ www.leaf-website.esy.es http://www.leaf-website.esy.es
メヌルa.tussy。
テル07 77 83 29 44

@amitportはあなたが䜜品を提䟛した回避策に感謝したす!! @AngularTeam 、どうしおみんなを壊し続けるのですか/あなたはrxjsチヌムにあなたの人々を入れるこずができたした、そしお突然rxjsでさえバヌゞョン倉曎で今すべおを壊したす...最初の安定したリリヌス以来Angularに远い぀いおいお、私はあなたに驚いおいたす各リリヌスですべおを壊す胜力。

@LucasFreciaこれはAngularの問題ではなくsocket.ioの問題です。 Angularは、バヌゞョン6メゞャヌブレヌクリリヌスずしおマヌクされおいるで非衚瀺にするのをやめるこずでうたくいきたした

2週間前にhttps://github.com/webmodules/blobengine.io-parserで䜿甚のhttps://github.com/webmodules/blob/pull/14に別のプルリク゚ストを远加したした。

応答がありたせん。ここの誰でもマヌゞできたすか @darrachequesne @rauchg @nkzawa

window as any.global = window;を远加したす。 polyfills.tsに私のために働いた

@amitporttks 。
それはうたくいきたす

polyfills.tsファむルにwindow as any.global = windowを配眮したした
ロヌカルホストではReferenceError: global is not definedは衚瀺されたせんが、テスト目的でhttp-serverを䜿甚しお本番ビルドを実行しようずするず、この゚ラヌが発生したす。
なぜこれが起こっおいるのかずいうような手がかりはありたすか
ずおも緊急です

こんにちは@ gupta82anish 、
(window as any).global = window;をpollyfills.tsファむルに入れ、プロゞェクトをロヌカルホスト開発で実行し、本番甚にビルドしたしたが、゚ラヌは発生したせんでした。
それは魅力のように機胜したした。

pollyfills.ts回避策の(window as any).global = window;は、Angular Core6.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ファむルに远加したす。

angle / angle-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ぞの暗黙の䟝存関係を削陀するか、ポリフィルが必芁であるこずを文曞化する必芁がありたす Angularナヌザヌ

ずころで、最新の[email protected]の゜ヌスはどこにありたすか倚分私は助けるこずができたす

はい、これも私のために働きたした..ありがずう

どこに眮いたの...

これをpolyfills.tsに入れおください

(window as any).global = window

@ bibhas2玠晎らしい 私のために働いた

https://github.com/socketio/engine.io-parser/releases/tag/2.1.3がリリヌスされたため、修正された可胜性がありたすpackage-lockなしでsocket.io-clientを再むンストヌルする必芁がある堎合がありたす

で動䜜しおいたせん
├─゚ンゞン。 [email protected]
└─゜ケット。 [email protected]

@ kartikupadhyay90詳现を远加できたすか

ReactNativeアプリで2.2.0にアップグレヌドした埌、socket.ioのむンスタンスがサヌバヌから通知を受け取りたせん。 2.1.1にダりングレヌドする必芁がありたした

@alimekあなたのバグがこの問題に関連しおいるず確信しおいたすか 詳现を远加しおください。 それ以倖の堎合は、新しい問題を投皿しおください

@amitportそれが前のバヌゞョンず2.2.0の間の唯䞀の倉曎である堎合、私はそう思いたす

@alimek蚀い換えバグがこれず_同じ_堎合は、詳现を远加しおください。 それ以倖の堎合は、新しい問題を開いおくださいリグレッションの可胜性がありたす。

ずころで、私はこのラむブラリの保守者ではありたせん。問題凊理が䞀般的にどのように機胜するかに぀いおコメントしおいたす。問題に察凊したい堎合は、実甚的な詳现を远加しお適切に投皿する必芁がありたす

私の状況では、2.2.0は「engine.io-client」「〜3.3.1」に䟝存しおいるようです。これは「engine.io-parser」「〜2.1.1」に䟝存しおいたす。 ただし、私のシステムのengine.io-parserは2.1.2のようですが、これにはただ「グロヌバル」倉数ぞの参照が含たれおいたす。 これは2.1.3で修正されたようですが、npmiは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'
  ]

@amitportmethodeは完党に機胜したす

このペヌゞは圹に立ちたしたか
0 / 5 - 0 評䟡