web-dev-qa-db-ja.com

グローバルは../node_modules/socket.io-parser/is-buffer.jsで定義されていません

助けてくれてありがとう。 angularコンポーネントの1つでソケットを接続しようとしていますが、ブラウザのコンソールで、グローバルがObject ../node_modules/socket.ioで定義されていないことを示すエラーがスローされます-parser/is-buffer.js

これは私のhome.component.tsです

import { Component, OnInit } from '@angular/core';
import * as $ from 'jquery';
import * as io from 'socket.io-client';

@Component({
  selector: 'app-home',
  templateUrl: './home.component.html',
  styleUrls: ['./home.component.css']
})
export class HomeComponent implements OnInit {

  constructor() { }

  ngOnInit() {
  }

}


var socket = io();

Socket.io-clientとsocket = io();を取り出した場合Webサイトは問題ありませんが、含めるとクラッシュします。

これは私のpackage.jsonファイルです

  "dependencies": {
    "@angular/animations": "^6.0.0",
    "@angular/common": "^6.0.0",
    "@angular/compiler": "^6.0.0",
    "@angular/core": "^6.0.0",
    "@angular/forms": "^6.0.0",
    "@angular/http": "^6.0.0",
    "@angular/platform-browser": "^6.0.0",
    "@angular/platform-browser-dynamic": "^6.0.0",
    "@angular/router": "^6.0.0",
    "@types/jquery": "^3.3.1",
    "@types/socket.io": "^1.4.33",
    "body-parser": "^1.18.3",
    "bootstrap": "^4.1.1",
    "core-js": "^2.5.4",
    "express": "^4.16.3",
    "jquery": "^3.3.1",
    "moment": "^2.22.1",
    "mongodb": "^3.1.0-beta4",
    "ng4-Twitter-timeline": "^1.0.8",
    "popper.js": "^1.14.3",
    "rxjs": "^6.0.0",
    "socket.io": "^2.1.0",
    "socket.io-client": "^2.1.0",
    "zone.js": "^0.8.26"
  }

私は最初に機能しなかった 'socket.io'だけを試しました。その後、同様の問題の調査を始めました。何も見つかりませんでした。

私の最終目標は、ソケットを使用してフォームからデータを取得し、データベースに格納することです。どんな助けでも大歓迎です。

PDATE(可能な解決策):05/17/2018使用する必要があります:

(window as any) = window 

polyfill.tsでは、これで問題が解決しました。

更新(可能な解決策#2):05/29/2018

(window as any).global = window
14
Dre Jackson
(window as any).global = window

コメントですでに述べたように、上記のコードをpolyfills.tsファイル。

12
Richang Sharma

頭のsrc/index.htmlに追加

<script>
    var global = global || window;
</script>
1
bormat

この問題を解決するには、ファイルを開く必要がありますyour_angular_setup/src/polyfills.tsとし、ファイルの下部に以下の行を追加します。

    (window as any).global = window

問題が修正されたことがわかります。

1
Prashant Barve