预建电子模块分布
Prebuilt electron module distribution
我想为 Electron 的本机 Node.js 附加组件分发预构建的二进制文件。
大概节点 ABI 在主要颠簸之间发生变化所以我想知道 运行ning node-pre-gyp
与 Node.js 的正确版本是否会削减它或者我是否必须 运行 electron-rebuild
并发布重建的二进制文件?
一个小实验表明,node-pre-gyp 在 electron 环境中 运行ning 时无法找到编译后的二进制文件。所以似乎 electron-rebuild
做了一些修补。
您可以使用 prebuild
为电子创建预构建的二进制文件。我们将它用于 leveldown
.
我查看了 electron-builder
的来源,发现它只是 运行s 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 版本或 S3,因此使用 prebuild
或 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
我想为 Electron 的本机 Node.js 附加组件分发预构建的二进制文件。
大概节点 ABI 在主要颠簸之间发生变化所以我想知道 运行ning node-pre-gyp
与 Node.js 的正确版本是否会削减它或者我是否必须 运行 electron-rebuild
并发布重建的二进制文件?
一个小实验表明,node-pre-gyp 在 electron 环境中 运行ning 时无法找到编译后的二进制文件。所以似乎 electron-rebuild
做了一些修补。
您可以使用 prebuild
为电子创建预构建的二进制文件。我们将它用于 leveldown
.
我查看了 electron-builder
的来源,发现它只是 运行s 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 版本或 S3,因此使用 prebuild
或 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