【问题标题】: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 根据开发者的操作系统下载哪一个?

【问题讨论】:

    标签: node.js npm electron


    【解决方案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)
    })
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-05
      • 1970-01-01
      • 2021-05-06
      • 1970-01-01
      相关资源
      最近更新 更多