require-rebuild
Patch require()
to rebuild a node module if it has been built for a different node version.
Works with electron as well and has been tested on OSX and Windows.
Usage
Once, as the first line of your program, include this line:
;
That's it! Now all further require()
calls, no matter how deep in your dependency tree, will make sure a native module has been compiled for the right node version.
To see it in action, install a native module, then switch to a different node version with a different abi, and see how it rebuilds on the fly:
$ node example.jsRecompiling node_modules/bignumCXX Release/obj.target/bignum/bignum.oSOLINK_MODULE Release/bignum.nodeDone!
General warning
This belongs into application code, not into a lib. Better leave it to a lib's consumer how to build their dependencies.
Build systems
At this moment, those build systems are supported
node-gyp
prebuild
License
MIT