Javascript nodejsv15.7.0 | Electron v11.2.3 |未捕获错误:未捕获类型错误:类构造函数<;类别>;如果没有';新';,但是是吗?

Javascript nodejsv15.7.0 | Electron v11.2.3 |未捕获错误:未捕获类型错误:类构造函数<;类别>;如果没有';新';,但是是吗?,javascript,node.js,electron,Javascript,Node.js,Electron,以下webPreferences属性在我创建的browser窗口中启用: { 网络首选项: { 不整合:错, enableRemoteModule:false, 上下文隔离:是的, worldSafeExecuteJavaScript:正确, preload:path.join(uu dirname,“preload.js”), 网络安全:没错, webviewTag:false, AllowRunningSecureContent:false, 节点集成nsubframes:false, no

以下
webPreferences
属性在我创建的
browser窗口中启用:

{
网络首选项:
{
不整合:错,
enableRemoteModule:false,
上下文隔离:是的,
worldSafeExecuteJavaScript:正确,
preload:path.join(uu dirname,“preload.js”),
网络安全:没错,
webviewTag:false,
AllowRunningSecureContent:false,
节点集成nsubframes:false,
nodeIntegrationInWorker:错,
}
}
我的
预加载.ts

electron.contextBridge.exposeInMainWorld(
    "someapiname",
    {
        requireClass(): any
        {
            return require("path/to/module").ClassName
        }
    }
)
我的HTML文件加载一个名为
HTML.js
的脚本,其中包含:

(函数()
{
const CLASSNAME=window[“someapiname”]。requireClass()
const newclass=新类名(“某些参数”,3)
newclass.aRandomMethod()
})()
但在Electron的开发人员控制台中,我总是得到:

未捕获的错误:未捕获的TypeError:在没有“new”的情况下无法调用类构造函数CLASSNAME

我不明白…它要求新的
,但它在那里?是否有我不知道的东西或电子的某种限制(不,我不想将
nodeIntegration
设置为true以及任何其他有害选项,如
enablemotemodule

当我在
preload
脚本中创建类时没有问题,但是随后类的方法就丢失了。我只能访问属性。我也用
IpcMain
ipcdrenderer
尝试了它,但是我得到了一个不同的错误(带有参数的东西)

我只想在渲染器中创建一个类并使用它的方法。

它明确表示不能通过contextBridge复制类/构造函数

原型修改被放弃。发送类或构造函数将不起作用


我想知道这是否与该类在节点中是一个commonJS模块这一事实有关,因为它可能需要一个es6模块,所以在渲染器中无法很好地工作。也许可以检查这个导出类的性质。我想我会犹豫是否导出整个类,但我不知道您的用例