助けてくれてありがとう。 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
(window as any).global = window
コメントですでに述べたように、上記のコードをpolyfills.ts
ファイル。
頭のsrc/index.htmlに追加
<script>
var global = global || window;
</script>
この問題を解決するには、ファイルを開く必要がありますyour_angular_setup/src/polyfills.ts
とし、ファイルの下部に以下の行を追加します。
(window as any).global = window
問題が修正されたことがわかります。