Question
Is there a way to install node-sqlite3
for multiple platforms I am targeting in my app without running standalone build for just every target platform combination?
Context
In my Node.js app I have a npm dependency node-sqlite3
(GitHub, npm), which contains different binaries (bindings) for different platforms.
My app is targeting different platforms, including Windows, Linux and macOS (both ia32 and x64) and modern Node versions: v6, v7 and v8. The app doesn't have any platform-specific behavior.
If I install the project's dependencies using npm install
, node-sqlite3
downloads binaries just for the current platform (let's say win32
, x64
, Node v7.10
).
I also have a Travis CI build configuration, which I use for Continuous Deployment as well as Continuous Integration. I chose Ubuntu Trusty as a host for executing builds.
As a part of a build process the app's dependencies are being installed by npm install
. Within deployment process, the built app with it's dependencies is being packaged (archived) and uploaded to a file hosting for further distribution.
Issue
node-sqlite3
is not installed for all target platforms I need, but just for a platform currently being used (for development or executing a build).
Possible solution
I could execute builds and deploy:
- with Travis - for Linux and macOS
- with AppVeyor - for Windows
But that's looks like a big overhead. As I've already said, the app doesn't have any platform-specific behavior. And I trust node-sqlite3
's vendor tested it at all major platforms I am targeting.