在 angular-cli@webpack 中使用 socket.io-client

Using socket.io-client in angular-cli@webpack

我打算在我的 Angular 2 应用程序中使用 socket.io,但我不太幸运地从我的 Angular 2 应用程序中访问它。以下是有关我的设置的一些信息:

Angular 2: rc.5
angular-cli: 1.0.0-beta.11-webpack.2
节点:6.2.2
OS: Linux x64

我已经通过 npm 和 typings 安装了 socket.io,我在我的 node_modules 目录中看到了它,但是 Angular 2 应用程序似乎无法解析:

import * as io from 'socket.io-client';

我看过一篇关于如何使用 Webpack 及其配置文件解决此问题的帖子,但对于使用 angular-cli@webpack 生成的应用程序,这些似乎不存在。

您只需要满足以下条件:

npm:

npm install socket.io-client --save

在您的组件中导入。ts/service.ts

import * as io from 'socket.io-client';

你的 typings.d.ts:

中的虚拟模块声明
declare module 'socket.io-client' {
  var e: any;
  export = e;
}

我不知道打字是否可用,但您可以尝试 npm i @types/socket.io-client --save-dev 而不是仅仅声明一个虚拟对象。

任何 webpack 配置都应由 angular-cli 处理。