Angular 使用SignalR MessagePack的坑
先假设大家都创建好了ng项目,并且安装上了@microsoft/signalr-protocol-msgpack和@microsoft/signalr包,并写上了一些基础代码。

然后开始运行,如果不出意外的话,我们会遇到一堆bug。
先从编译报错开始,我们会遇到两个警告和两个报错,大致如下图。

先从webpack问题开始,问题大致是webpack5里面不自带node polyfills了,需要我们手动安装。
看了一下报错,主要是util和assert这两个库,所以我们先安装这两个库。我相信大家都会安装,这里就不说安装的步骤了。
然后报错就神奇般的没有了。

然后解决警告的问题,这个是因为不能直接引用commonjs或amd的依赖,通过那个链接我们可以知道,改一下配置就可以了。

在对应的位置上加上如下配置。
然后报错和警告就都没有了。


然而并没有结束,我们还需要处理控制台上的报错。

看到这个报错,我还以为要弄一个process库进来,后来找了找issues,才发现有奇淫巧技。

下边是可能会遇到的报错


经过实验,好像一共有三种报错,分别是process、global、Buffer。
然后我们在polyfills.ts里加入如下代码。
好像就解决了,至少没报错了。

到此为止了,发现其他的坑后续再加上。