gpt4 book ai didi

node.js - 预建 Electron 模块分布

转载 作者:太空宇宙 更新时间:2023-11-04 03:03:04 25 4
gpt4 key购买 nike

我想为 Electron 的原生 Node.js 插件分发预构建的二进制文件。

大概 Node ABI 在重大变化之间会发生变化,所以我想知道使用正确版本的 Node.js 运行 node-pre-gyp 是否会削减它,或者我是否必须运行 electron-rebuild 并发布重建的二进制文件?

一个小实验表明,在 Electron 环境中运行时,node-pre-gyp 无法找到编译后的二进制文件。所以看来 Electron-rebuild 做了一些修补工作。

最佳答案

我查看了 electron-builder 的源代码,发现它只是在包上运行 install

因此,拥有以下安装 Hook 就足够了:

node-pre-gyp install --fallback-to-build

我不再直接使用 Electron-rebuild ,因为我首先生成了正确的二进制文件,但我运行了 electron-builder install-app-deps ,它的作用可能类似。

此时我认为没有任何理由需要使用 prebuildprebuild-install。还有两个依赖项屏蔽了 node-pre-gypnode-gyp 都已经实现的内容。

我修改了 travis 的脚本以并行运行 Node 和 Electron 的构建:

# build for nodejs
- npm install --build-from-source

# build for electron
- npm install --build-from-source --runtime=electron --target=$ELECTRON_VERSION --dist-url=https://atom.io/download/atom-shell

打包步骤必须使用相同的标志运行两次,即:

- if [[ "${TRAVIS_TAG}" != "" ]]; then npm run package --verbose; fi
- if [[ "${TRAVIS_TAG}" != "" ]]; then npm run package --runtime=electron --target=$ELECTRON_VERSION --verbose; fi

Travis 和 Appveyor 都支持上传到 Github Releases 或 S3,因此使用 prebuildnode-pre-gyp-github 再次没有任何好处,例如 Travis:

deploy:
provider: releases
api_key:
secure: ENCRYPTED_KEY
file_glob: true
file: build/stage/$PACKAGE_VERSION/*.tar.gz
skip_cleanup: true
on:
tags: true

关于node.js - 预建 Electron 模块分布,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49198482/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com