angular 13 和 twilio 同步。 TypeError 变量名不是构造函数

angular 13 and twilio sync. TypeError variablename is not a constructor

一张纸条。当我使用 angular 10 时,它工作正常。升级到angular13后才出现问题

要求放在构造函数中,因为这是一个可注入服务,我相信它需要放在构造函数中。

注意我的代码 TwilioSyncService

export class TwilioSyncService{

  constructor(private http: HttpClient, private router: Router){
    //@ts-ignore
    this.syncClientclass = require('twilio-sync');
  }
  syncClientclass;
  syncClient;

稍后在代码中使用:

connect(token){
     this.syncClient = new this.syncClientclass(token);
     this.sendSyncClient(this.syncClient);
  }

Twilio 同步文档说这是正确的

var SyncClient = require('twilio-sync');
var syncClient = new SyncClient(token);

来自下面链接的文档。

https://media.twiliocdn.com/sdk/js/sync/releases/3.0.1/docs/index.html

我刚刚安装了最新版本的 Twilio Sync 并尝试像您一样要求它,但我也无法初始化客户端。

但是,检查我在需要时得到的对象表明它只是一个包含所有 classes 的对象。在这种情况下,您正在寻找 Client class,因此您需要:

this.syncClientclass = require('twilio-sync').Client;

我认为您的 twilio-sync 版本可能随着您更新 Angular 而更新。看起来 this change 出现在版本 3.0.5 中,其中描述了可能对此产生影响的两个更改:

  • Default exports removed — they didn’t work in the previous versions either.
  • Fixed type resolution issues on Angular.