使用 Electron 预加载 JS 库并在渲染器中可用

Preload JS library with Electron and make available in renderer

提问人:fnllc 提问时间:9/20/2023 更新时间:9/20/2023 访问量:15

问:

我正在升级一个较旧的 ElectronJS 应用程序,该应用程序在 index.html 中加载 JS 库,如下所示:

<script>let ClipboardJS = require('clipboard');</script>

但是,这是过时的方式。

我按如下方式设置预加载.js:

const {
    ipcRenderer,
    contextBridge
} = require("electron");

const clipboardJS = require('clipboard');

contextBridge.exposeInMainWorld('jslibs', {
    clipboardJS: clipboardJS
});

我的主.js文件包含BrowserWindow的以下内容:

// Create the browser window.
win = new BrowserWindow({
    width: 1024,
    height: 768,
    webPreferences: {
        sandbox: false,
        contextIsolation: true,
        preload: path.join(__dirname, "preload.js") // use a preload script
    },
    autoHideMenuBar: true,
    icon: __dirname + '/icons/icon.icns'
});

我在渲染器.js中以这种方式初始化一个新的ClipboardJS:

var clipboard = new jslibs.clipboardJS('.button-clipboard');

控制台显示以下错误:

Uncaught Error: Cannot call a class as a function

加载使用 package.json 管理的 JS 库的正确方法是什么?

电子 预紧力

评论


答: 暂无答案