在Angular 2应用程序中导入socket.io-client时出错

时间:2016-08-06 06:16:47

标签: angular socket.io

我正在尝试在我的angular 2应用程序中使用socket.io客户端并安装它和打字

我只是从'socket.io-client'导入;

但不知怎的,我从中得到了很多错误:

enter image description here

如果我从cdn加载脚本并将init代码放在<script>标签中,我可以在index.html中使用lib,但我不能在我的实际angular 2应用程序中使用它。< / p>

我在这里做错了什么?

这是我的样板:https://github.com/mgechev/angular2-seed

socket.io的例子似乎已经过时了,这就是我避免它们的原因。

这就是我正在做的并且已经收到了这些错误:

import * as io from 'socket.io-client';
[...]
var socket = io('127.0.0.1');

所以这个问题似乎与SystemJS有关。 这个https://github.com/mgechev/angular2-seed/wiki/Add-external-dependency建议我可以添加socket.io-client,它应该自动添加所有依赖项,但看起来并非如此。

我已经尝试了完整的示例,但这也无效。

2 个答案:

答案 0 :(得分:2)

我在angular 2应用程序中使用socket.io客户端,并且没有任何问题。首先,您不应将script标记放入index.hml中的socket.io-client。其次,你需要在system.js配置中使用这些行:

{
  packages: {
      "socket.io-client": {"defaultExtension": "js"}
  },

  map: {
    "socket.io-client": "node_modules/socket.io-client/socket.io.js"
  }
}

然后你只需使用它:

import * as io from "socket.io-client";
io.connect(url, { /* ... */ });

答案 1 :(得分:0)

基于this中提到的question 你应该使用npm install @types/socket.io-client --save