node-shyp

Precompile your node modules, use npm as your data store:

node-shyp

Precompile your node modules, use npm as your data store:

coolmodule
optional:
  coolmodule-shyp-win32-x64
  coolmodule-shyp-win32-ia32
  coolmodule-shyp-darwin-x64
  coolmodule-shyp-darwin-ia32
  ...

To install

npm install -g node-shyp

node-shyp is simple. All your node-gyp configuration works as before, with just a few modifications to package.json.

"scripts": {
    "install": "node shyp-blacklist.js win32-x64 [etc...] || node-gyp rebuild"
}

Node will only install those dependencies that match your arch/platform (due to the published code's package.json settings).

{
    "version": "1.1.3",
    "optionalDependencies": {
       "coolmodule-shyp-win32-x64": "1.1.x",
       ...
    }
}

This will publish the compiled versions of the code to npm.

Just like the bindings module.

module.exports = require('bindings-shyp')('canvas')

Shyp automatically compiles against multiple Node versions for compatibility. (As of Feb 2013, releasing for stable versions means building against 0.8.26 and 0.10.26.) These are hardcoded though they probably shouldn't be.

  • 0.8.x uses the tag "v8.3-11" for its node version.
  • 0.10.x uses the tag "v8.3-14" until 0.10.4, where NODE_MODULE_VERSION is exposed. Shyp hardcodes this version to equal "node-v11".
  • 0.10.4 onward uses "node-v11".
  • 0.11.x uses "node-v14".

MIT