Я не могу создать экземпляр ReconnectingWebSocket при запуске через браузер после версии 3.2.2.До версии 3.2.2 и равных все работало нормально.Но теперь я получаю следующую ошибку:
client.ts:13 Uncaught TypeError: ReconnectingWebSocket is not a constructor
at Object.<anonymous> (client.ts:13)
at __webpack_require__ (bootstrap a23e24d7998736253177:19)
at Object.<anonymous> (main.ts:9)
at __webpack_require__ (bootstrap a23e24d7998736253177:19)
at bootstrap a23e24d7998736253177:62
at bootstrap a23e24d7998736253177:62
Мой код client.ts:
import { listen } from 'vscode-ws-jsonrpc';
const ReconnectingWebSocket = require ('reconnecting-websocket');
const socketOptions = {
WebSocket: undefined,
maxReconnectionDelay: 10000,
minReconnectionDelay: 1000,
reconnectionDelayGrowFactor: 1.3,
connectionTimeout: 10000,
maxRetries: Infinity,
debug: false
};
const webSocket = new ReconnectingWebSocket('ws://localhost:3000/', undefined, socketOptions);
listen({
webSocket,
onConnection: connection => {
console.log('connected');
}
});
Я проверил # 95, но "esModuleInterop": true
не работает для меня.
Вот мой tsconfig.json:
{
"compilerOptions": {
"target": "es5",
"module": "commonjs",
"moduleResolution": "node",
"sourceMap": true,
"declarationMap": true,
"inlineSources": false,
"declaration": true,
"stripInternal": true,
"lib": [
"es6",
"dom"
],
"strict": true,
"noImplicitReturns": true,
"noUnusedLocals": true,
"rootDir": "src",
"outDir": "lib",
"baseUrl": ".",
"skipLibCheck": true,
"alwaysStrict": true,
"esModuleInterop": true
},
"include": [
"src"
]
}
Еще одна вещь, выполнение того же кода client.ts из терминала node lib/client.js
работает нормально.Но то же самое дает ошибку в браузере.При отладке в консоли браузера typeof ReconnectingWebSocket
показывает, что это объект, а не функция.Но typeof ReconnectingWebSocket.default
дает как функцию.
Итак, я использую ReconnectingWebSocket с ключевым словом default
, как
const webSocket = new ReconnectingWebSocket('ws://localhost:3000/', undefined, socketOptions).default;
Теперь он отлично работает в браузере.Но то же самое выдает ту же ошибку при запуске из терминала.
Пожалуйста, помогите, как использовать ReconnectingWebSocket после версии 3.2.2?