Uncaught TypeError: Class extends value #<Object> is not a constructor or null - with superagent-throttle
Uncaught TypeError: Class extends value #<Object> is not a constructor or null - with superagent-throttle
我正在尝试在我的 TypeScript
项目中导入 npm 包 superagent-throttle,但是当我这样做时,我收到了这条消息:
Uncaught TypeError: Class extends value #<Object> is not a constructor or null
如果我使用 require
它工作正常:
const Throttle = require("superagent-throttle");
但是,我已经开始使用 Vite
,它不允许 require
,所以我必须改用 import
。
我引用它的代码想要实例化一个 class
即:
this.throttle = new Throttle({
// set false to pause queue
active: true,
// how many requests can be sent every `ratePer`
rate: 10000,
// number of ms in which `rate` requests may be sent
ratePer: 1000,
// How many requests can be sent concurrently
concurrent: 2
});
我尝试了 import
语句的不同变体,但其中 none 对我有用:
import { Throttle } from "superagent-throttle";
import Throttle from "superagent-throttle";
import * as Throttle from "superagent-throttle";
它们都给出相同的结果 - 它们编译正常但在运行时失败并显示相同的错误消息(如上)。
superagent-throttle
JS 文件中的代码看起来很晦涩,我不知道它试图做什么,所以我正在努力尝试理解如何解决这个问题:
打包文件:node_modules/superagent-throttle/dist/index.js
:
'use strict';
var _events = require('events');
var _events2 = _interopRequireDefault(_events);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
...
class Throttle extends _events2.default {
constructor(options) {
super();
// instance properties
this._options({
_requestTimes: [0],
_current: 0,
_buffer: [],
_serials: {},
_timeout: false
});
... etc ...
错误消息指向有问题的代码中的 _events2.default
:
var _events = require('events');
var _events2 = _interopRequireDefault(_events);
⋮ /* not a constructor or null */
class Throttle extends _events2.default {
调试器显示 _events.default
被存根为空对象,这意味着 events
模块不可用。 events
(来自 Node)在浏览器中通常不可用,导致您观察到的错误。
一种解决方案是安装 events
垫片:
npm i -S events
我正在尝试在我的 TypeScript
项目中导入 npm 包 superagent-throttle,但是当我这样做时,我收到了这条消息:
Uncaught TypeError: Class extends value #<Object> is not a constructor or null
如果我使用 require
它工作正常:
const Throttle = require("superagent-throttle");
但是,我已经开始使用 Vite
,它不允许 require
,所以我必须改用 import
。
我引用它的代码想要实例化一个 class
即:
this.throttle = new Throttle({
// set false to pause queue
active: true,
// how many requests can be sent every `ratePer`
rate: 10000,
// number of ms in which `rate` requests may be sent
ratePer: 1000,
// How many requests can be sent concurrently
concurrent: 2
});
我尝试了 import
语句的不同变体,但其中 none 对我有用:
import { Throttle } from "superagent-throttle";
import Throttle from "superagent-throttle";
import * as Throttle from "superagent-throttle";
它们都给出相同的结果 - 它们编译正常但在运行时失败并显示相同的错误消息(如上)。
superagent-throttle
JS 文件中的代码看起来很晦涩,我不知道它试图做什么,所以我正在努力尝试理解如何解决这个问题:
打包文件:node_modules/superagent-throttle/dist/index.js
:
'use strict';
var _events = require('events');
var _events2 = _interopRequireDefault(_events);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
...
class Throttle extends _events2.default {
constructor(options) {
super();
// instance properties
this._options({
_requestTimes: [0],
_current: 0,
_buffer: [],
_serials: {},
_timeout: false
});
... etc ...
错误消息指向有问题的代码中的 _events2.default
:
var _events = require('events');
var _events2 = _interopRequireDefault(_events);
⋮ /* not a constructor or null */
class Throttle extends _events2.default {
调试器显示 _events.default
被存根为空对象,这意味着 events
模块不可用。 events
(来自 Node)在浏览器中通常不可用,导致您观察到的错误。
一种解决方案是安装 events
垫片:
npm i -S events