Mission
Easy generator or integration of prebuilt packages for use with npm
or yarn
. It helps fetchs prebuilt binaries from github releases that will be bind as part of your package.
Generate a prebuilt package
- Create new project
npm init
- Add this package as dependency
npm install any-prebuilt --save
- Create
postinstall.js
file with content:require('any-prebuilt').install(require('./package.json').prebuilt)
- Create
index.js
file with content:var anyPrebuilt = require('any-prebuilt') anyPrebuilt.initialize(__dirname, require('./package.json').prebuilt) module.exports.path = anyPrebuilt.path
- On the
package.json
add a prebuilt element (you can also add this to any other file that provides a jason object to both index and postinstall.js)."prebuilt": { "arch": <string>, // Target architecture (supported: `ia32` / `x64`. Default value: machine's architecture) "platform": <string>, //Target platform (supported: `win` / `osx` / `linux`. Default value: machine's platform) "version": <string>, //Target version (format: `vX.Y.Z`. Default value: latest) "targetDir": <string>, //Target directory (where to install the binaries. Default value: `./bin`) "targetBin": <string>, //Target binary (the precompiled binary to be required in node. No default value) "user": <string>, // user or Organization (format: string. Is `required`) "repo": <string>, //Origin repo (format: string. Is `required`) "token": <string> //Github token (format: string. `required` if private repo) }
- In your
package .json
add the next script:"scripts": { "postinstall": "node postinstall.js" }
As seen before this can be configured using a json object but also can be configured or overrided using the next enviroment variables PREBUILT_ARCH
, PREBUILT_PLATFORM
, PREBUILT_VERSION
, PREBUILT_BINARY
, PREBUILT_TOKEN
, PREBUILT_REPO
, PREBUILT_USER
and PREBUILT_TARGET_DIR
environment variables.
Logo
Hours graphic by Freepik from Flaticon is licensed under CC BY 3.0. Made with Logo Maker