我目前正在构建一个打算在Raspberry Pi 3 B +上运行的Electron应用程序,该Raspberry Pi 3 B +在arm64
架构上运行Ubuntu MATE。为了加快开发速度,我正在使用同时运行Ubuntu MATE的虚拟机编写代码。使用electron-builder
,我可以为arm64
编译应用程序,并且可以在pi上很好地运行。
一旦引入onoff
库来访问GPIO,就会遇到我遇到的问题。构建仍然成功,并且应用程序在虚拟机上运行,尽管有一条错误消息指出它无法访问引脚(这是我所期望的,因为虚拟盒没有实际的GPIO)。
尽管在Pi上,该应用程序启动了一些进程,但未打开。如果我使用命令行运行应用程序,则会出现以下错误:
A JavaScript error occurred in the main process
Uncaught Exception:
Error: /tmp/.org.chromium.Chromium.h1PhHe: cannot open shared object file: No such file or directory
at process.module.(anonymous function) [as dlopen] (ELECTRON_ASAR.js:160:31)
at Object.Module._extensions..node (internal/modules/cjs/loader.js:722:18)
at Object.module.(anonymous function) [as .node] (ELECTRON_ASAR.js:169:18)
at Module.load (internal/modules/cjs/loader.js:602:32)
at tryModuleLoad (internal/modules/cjs/loader.js:541:12)
at Function.Module._load (internal/modules/cjs/loader.js:533:3)
at Module.require (internal/modules/cjs/loader.js:640:17)
at require (internal/modules/cjs/helpers.js:20:18)
at bindings (/opt/Fllipper Plate Viewer/resources/app.asar/node_modules/bindings/bindings.js:112:48)
at module.exports (/opt/Fllipper Plate Viewer/resources/app.asar/node_modules/epoll/epoll.js:5:31)
我尝试将buildDependenciesFromSource
设置为true
,但似乎没有任何改变。我也使用过electron-rebuild
。我还尝试将epoll
(由onoff
使用)添加为我自己的应用程序的直接依赖项。
我对electron-webpack
和electron-builder
的配置:
"electronWebpack": {
"whiteListedModules": [
"electron-json-storage"
]
},
"build": {
"appId": "com.electron.fllipper-plate-viewer",
"productName": "Fllipper Plate Viewer",
"directories": {
"output": "build",
"buildResources": "assets"
},
"linux": {
"category": "Utility",
"target": [
{
"target": "deb",
"arch": [
"x64",
"arm64"
]
}
]
}
}
我猜想在使用electron-builder
时会缺少一些东西,当针对特定的芯片体系结构时,它如何重建epoll
之类的本地依赖项?也许我对electron-webpack
或webpack
总体上如何处理外部情况做出了错误的假设?