如何根据操作系统下载不同版本的电子

Posted

技术标签:

【中文标题】如何根据操作系统下载不同版本的电子【英文标题】:How does different versions of electron get downloaded depending on OS 【发布时间】:2021-10-18 21:29:12 【问题描述】:

当您执行npm i electron 时,我在节点模块中得到electron.exe,那是因为我在Windows 机器上,并且电子的预构建C++ 二进制文件将采用.exe 格式,明白了。如果您在 MAC 上安装电子,我假设您获得不同的预构建二进制文件,NPM 是如何知道要安装哪个预构建二进制文件的?我知道我的问题非常具体,但我很好奇 npm 如何为您提供不同的二进制文件。电子团队是否单独编译他们的二进制文件,然后告诉 NPM 根据开发者的操作系统下载哪一个?

【问题讨论】:

【参考方案1】:

如果您查看node_modules/electron/package.json,您会看到electron 包正在运行postinstall 脚本

"scripts": 
  "postinstall": "node install.js"

node_modules/electron/install.js 像任何普通的 Node.js 脚本一样执行,它可以访问有关您的操作系统的信息。此脚本会自动下载适当的 electron 二进制文件

downloadArtifact(
  version,
  artifactName: 'electron',
  force: process.env.force_no_cache === 'true',
  cacheRoot: process.env.electron_config_cache,
  platform: process.env.npm_config_platform || process.platform,
  arch: process.env.npm_config_arch || process.arch
).then(extractFile).catch(err => 
  console.error(err.stack)
  process.exit(1)
)

【讨论】:

以上是关于如何根据操作系统下载不同版本的电子的主要内容,如果未能解决你的问题,请参考以下文章

怎么根据自己电脑下载合适jdk,下哪个版本最合适?

开发环境配置

根据主题过滤 Outlook 电子邮件,然后下载附件

MySQL下载步骤详解

python中如何安装SciPY模块

一个二维码如何自动识别是安卓(Android)还是苹果(IOS)