【问题标题】:use the Dbus package in an electron app (Build process)在电子应用程序中使用 Dbus 包(构建过程)
【发布时间】:2021-02-23 14:35:14
【问题描述】:

当我需要 dbus 包中的 DBus 时,我遇到了这个问题

const { app, BrowserWindow } = require("electron");
const DBus = require('dbus');

app.whenReady().then(() => {
    var win = new BrowserWindow({ width: 600, height: 500 });
    win.loadFile('index.html');

    win.webContents.openDevTools();
});

所以当我执行这段代码时,我得到了这个错误:

> electron script.js

App threw an error during load
Error: Module did not self-register: '/home/bislem/projects/test/electron/node_modules/dbus/build/Release/dbus.node'.
    at process.func [as dlopen] (electron/js2c/asar.js:140:31)
    at Object.Module._extensions..node (internal/modules/cjs/loader.js:1196:18)
    at Object.func [as .node] (electron/js2c/asar.js:140:31)
    at Module.load (internal/modules/cjs/loader.js:981:32)
    at Module._load (internal/modules/cjs/loader.js:881:14)
    at Function.Module._load (electron/js2c/asar.js:769:28)
    at Module.require (internal/modules/cjs/loader.js:1023:19)
    at require (internal/modules/cjs/helpers.js:77:18)
    at Object.<anonymous> (/home/bislem/projects/test/electron/node_modules/dbus/lib/dbus.js:3:13)
    at Module._compile (internal/modules/cjs/loader.js:1145:30)
A JavaScript error occurred in the main process
Uncaught Exception:
Error: Module did not self-register: '/home/bislem/projects/test/electron/node_modules/dbus/build/Release/dbus.node'.
    at process.func [as dlopen] (electron/js2c/asar.js:140:31)
    at Object.Module._extensions..node (internal/modules/cjs/loader.js:1196:18)
    at Object.func [as .node] (electron/js2c/asar.js:140:31)
    at Module.load (internal/modules/cjs/loader.js:981:32)
    at Module._load (internal/modules/cjs/loader.js:881:14)
    at Function.Module._load (electron/js2c/asar.js:769:28)
    at Module.require (internal/modules/cjs/loader.js:1023:19)
    at require (internal/modules/cjs/helpers.js:77:18)
    at Object.<anonymous> (/home/bislem/projects/test/electron/node_modules/dbus/lib/dbus.js:3:13)
    at Module._compile (internal/modules/cjs/loader.js:1145:30)

我搜索了这个错误并尝试了一些解决方案,但都没有奏效(npm rebuildnpm update,删除node_modules 文件夹然后npm install,使用不同版本的节点使用nvm 命令) ,但是当他自己运行每个包时,(使用启动脚本electron .运行electron,并使用node script.js运行dbus)它们可以正常工作。

安装dbus 包时出现了这个问题: console when installing dbus, console when installing dbus part 2

我的 package.json 文件:

{
    "name": "electrontest",
    "version": "1.0.0",
    "description": "",
    "main": "script.js",
    "scripts": {
        "start": "electron script.js",
        "test": "echo \"Error: no test specified\" && exit 1"
    },
    "keywords": [],
    "author": "",
    "license": "ISC",
    "dependencies": {
        "bootstrap": "^4.5.3",
        "dbus": "^1.0.7",
        "electron": "^10.1.5"
    }
}

所以我的问题是构建/运行此类代码的正确方法是什么? ||如何并排使用这两个包?

【问题讨论】:

    标签: node.js ubuntu npm electron dbus


    【解决方案1】:

    你需要跑

    npm install --save-dev electron-rebuild && npx electron-rebuild
    
    

    更多关于在电子here中使用本机节点模块

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-03-04
      • 2019-10-17
      • 2016-12-10
      • 2018-10-06
      • 2018-12-31
      • 1970-01-01
      • 1970-01-01
      • 2020-05-25
      相关资源
      最近更新 更多