使用 WSL 开发

在 Windows 上使用 Windows 子系统 Linux 开发

如果您使用的是 Windows 子系统 Linux (WSL),在运行 Electron 应用时会遇到一些问题。由于您可以在其中运行一个几乎完整的 Linux 发行版,因此当您在其中时,它会合理地将自身声明为 Linux。但是,截至 2021 年 2 月,尚不支持开箱即用地运行为 Linux 编译的图形应用。简单地尝试在您已在 WSL 中安装依赖项的开发环境中运行 Electron 应用将尝试并失败地找到 X11 服务器,因此无法启动。

幸运的是,WSL 的一项功能是您可以从 WSL 终端无缝运行 Windows 可执行文件。需要注意的是,您需要重新安装 Electron 以选择 Windows 的预构建二进制文件而不是 Linux 的。在 WSL 终端中,假设您已安装了 Linux 的 Node.js,您可以运行

# If node_modules exists already that was installed in WSL:

rm -r node_modules

# then:

npm install --platform=win32

# or:

npm_config_platform=win32 npm install

然后,像往常一样通过 npm start 以开发模式启动 Electron 应用。

对于打包/构建/发布,如果您想为 Windows 生成捆绑包/分发包,则仍然需要指定平台。

npm run make -- --platform=win32

Electron Forge 的一些依赖项无法与 WSL 完全配合使用,因为它们无法检测到它们是在 WSL 中运行的 (而不是 Linux),因此尝试在...Wine 中运行作为 Windows 可执行文件提供的某些工具。我们正在积极努力使依赖工具能够识别 WSL。解决方法是在 WSL 外部运行打包/构建/发布操作。

上次更新于