First, please read On Maintaining a Native Node Module
Problem: There is no standard way to build + distribute prebuilt binaries for node modules with native addons (e.g. C++ bindings).
There's a thing called NODE_MODULE_VERSION
which is used to know if a native module was compiled for the correct version + flavor of node. If you are trying to load something compiled for e.g. iojs
from February 2015 into node
from March 2014 you will get an error something like Error: Module version mismatch. Expected 11, got 42.
when you try and run your program. node
uses numbers from 10 going up, and iojs
uses numbers from 40 going up. The NODE_MODULE_VERSION
gets bumped usually when V8 is upgraded, but sometimes for other reasons. It also gets even more complicated when you start talking about runtimes like Electron or Node-Webkit, but I won't get into that here. To my knowledge there is n