我想为 Electron 的原生 Node.js 附加组件分发预构建的二进制文件。
大概 Node ABI 在主要颠簸之间发生变化,所以我想知道node-pre-gyp
使用正确版本的 Node.js运行是否会减少它,或者我是否必须运行electron-rebuild
和发布重建的二进制文件?
一个小实验表明node-pre-gyp在电子环境下运行时找不到编译好的二进制文件。所以它似乎可以解决electron-rebuild
这个问题。
我查看了 的来源,electron-builder
发现它只是install
在包上运行。
所以有以下安装钩子就足够了:
node-pre-gyp install --fallback-to-build
我不再electron-rebuild
直接使用,因为我首先生成了正确的二进制文件,但我运行的electron-builder install-app-deps
可能类似。
在这一点上,我看不出有任何理由去打扰prebuild
和prebuild-install
。这两个是什么屏蔽的依赖node-pre-gyp
和node-gyp
两个已经实现了。
我修改了我的 travis 脚本以并行运行节点和电子的构建:
# 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,因此再次使用prebuild
or没有任何好处node-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
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句