如何根据操作系统下载不同版本的电子
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)
)
【讨论】:
以上是关于如何根据操作系统下载不同版本的电子的主要内容,如果未能解决你的问题,请参考以下文章