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

Posted

技术标签:

【中文标题】在 angular-cli@webpack 中使用 socket.io-client【英文标题】:Using socket.io-client in angular-cli@webpack 【发布时间】:2016-12-23 06:59:37 【问题描述】:

我想在我的 Angular 2 应用程序中使用 socket.io,但从我的 Angular 2 应用程序中访问它的运气并不好。以下是有关我的设置的一些信息:

Angular 2:rc.5 角-cli:1.0.0-beta.11-webpack.2 节点:6.2.2 操作系统:Linux x64

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

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

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

【问题讨论】:

【参考方案1】:

您只需要以下内容:

npm:

npm install socket.io-client --save

在您的 component.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 处理。

【讨论】:

感谢您的回复,我已将这些步骤包含在我的项目中,并且似乎可以正常工作。至少到了我可以在我的服务中包含 socket.io 并创建一个套接字的程度,并且事情不会爆炸!我将替代我当前使用 socket.io 的 polling/http 服务,看看它是否都挂在一起。再次感谢您的帮助!!

以上是关于在 angular-cli@webpack 中使用 socket.io-client的主要内容,如果未能解决你的问题,请参考以下文章

Chrome 调试器不适用于打字稿文件

在 Observable RxSwift 中使用 'asPromise()' 可以在 PromiseKit Promise 中使用吗?

可以在 SELECT 查询中使用 IF() 但不能在 UPDATE 中使用

如何在 Python 中使用 kivy 在 TabeedPanel 中使用 GridLayout

Vue3中使用Pinia

为啥不能在视图中使用它,因为它在控制器中使用?