Any Prebuilt

Any Prebuilt

logomakr_3dkn9b

Mission

Easy generation or integration of prebuilt packages. It helps fetchs prebuilt binaries from github releases.

Generate a prebuilt package

  1. Create new project
npm init
  1. Add this package as dependency
npm install any-prebuilt --save
  1. Create postinstall.js file with content:
require('any-prebuilt').install(require('./package.json').prebuilt)
  1. Create index.js file with content:
var anyPrebuilt = require('any-prebuilt')
anyPrebuilt.initialize(__dirname, require('./package.json').prebuilt)
module.exports.path = anyPrebuilt.path
  1. 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)
    "version": <string>, //Target version (format: `vX.Y.Z`. Default value: latest)
    "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)
  }
  1. 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.

Special thanks

to all the contributors to wcjs-prebuilt that this package is based on.

Hours graphic by Freepik from Flaticon is licensed under CC BY 3.0. Made with Logo Maker

Avatar
Code dreamer, Creator of random stuff & sharing wizard