问题
有没有一种方法可以node-sqlite3
为我在我的应用程序中定位的多个平台安装,而无需为每个目标平台组合运行独立构建?
语境
在我的 Node.js 应用程序中,我有一个 npm 依赖项node-sqlite3
(GitHub、npm),其中包含针对不同平台的不同二进制文件(绑定)。
我的应用程序针对不同的平台,包括Windows、Linux和macOS(ia32和x64)以及现代 Node 版本:v6、v7 和 v8。该应用程序没有任何特定于平台的行为。
如果我使用 安装项目的依赖项npm install
,node-sqlite3
则仅为当前平台下载二进制文件(比如说win32
, x64
, Node v7.10
)。
我还有一个 Travis CI 构建配置,用于持续部署和持续集成。我选择Ubuntu Trusty作为执行构建的主机。
作为构建过程的一部分,应用程序的依赖项由npm install
. 在部署过程中,构建的应用程序及其依赖项被打包(存档)并上传到文件托管以供进一步分发。
问题
node-sqlite3
没有为我需要的所有目标平台安装,而只是为当前正在使用的平台(用于开发或执行构建)安装。
可能的解决方案
我可以执行构建和部署:
- 使用 Travis - 适用于 Linux 和 macOS
- 使用 AppVeyor - 适用于 Windows
但这看起来像是一个很大的开销。正如我已经说过的,该应用程序没有任何特定于平台的行为。我相信node-sqlite3
的供应商在我所针对的所有主要平台上都对其进行了测试。