在开发容器和电子中加载共享库时出错

Error while loading shared libraries in dev containers and electron

问题

我在开发容器中有一个电子项目,每次我在开发容器中执行 npm start 我都会收到此错误:

>ProjectName@1.0.0 start /workspaces/ProjectName
>electron .

/workspaces/ProjectName/node_modules/electron/dist/electron: error while loading shared libraries: libxshfence.so.1: cannot open shared object file: No such file or directory
npm ERR! code ELIFECYCLE
npm ERR! syscall spawn
npm ERR! file sh
npm ERR! errno ENOENT
npm ERR! ProjectName@1.0.0 start:`electron .`
npm ERR! spawn ENOENT
npm ERR! 
npm ERR! Failed at the ProjectName@1.0.0 start script
npm ERR! This is probably not a problem with npm. There is likely additional logginh output above.

npm ERR! A complete log of this run can be found in:
npm ERR!   /home/node/.npm/_logs/2021-04-30T21_59_57_871Z-debug.log

访问 -> /home/node/.npm/_logs/2021-04-30T21_59_57_871Z-debug.log

我是怎么来到这里的

(我在 Debain 10 顺便说一下)

  1. 使用 VS 代码命令面板为节点 14 创建了一个远程容器
  2. npm init -y
  3. package.json 中添加了启动脚本。
  4. 安装电子npm install --save-dev electron@latest

此解决方案是在 Alexander Leithner 的帮助下完成的。

问题与缺少某些库有关。

解决方案:

  1. 在本地重新打开项目。

  2. 并修改.devcontainer文件夹中的Dockerfile

  3. 将以下行添加到文件中:

    RUN apt-get update && export DEBIAN_FRONTEND=noninteractive && apt-get -y install --no-install-recommends xorg openbox libnss3 libasound2 libatk-adaptor libgtk-3-0

  4. 在开发容器中打开项目。