0.2.4 • Published 9 years ago

prebuilt v0.2.4

Weekly downloads
29
License
MIT
Repository
github
Last release
9 years ago

NPM

A simple CLI/API tool to package and deploy prebuilt versions of node_modules packages to bypass gcc node-gyp issues. This is another level up from node-pre-gyp, if one of your target node_modules does not precompile, you can use this to bundle versions of that entire library.

Now rewrites package.json of target package to ensure it will not run node-gyp on future installs after it is deployed.

Build Status codecov

NPM

Install (For npm script or API usage)

npm i -D prebuilt

Install (global)

npm i -g prebuilt

Usage

CLI / NPM scripts

Pack an installed (and built) package from a VM:

prebuilt --pack package_name

# shorthand
prebuilt -p package_name

Install prebuilt packages on a machine, node version, platform and bitness will be handled automatically:

prebuilt --install package_name

# shorthand
prebuilt -i package_name

API

import { pack, install } from 'prebuilt'
import util from 'util'

const printResult = x => console.log(util.inspect(x))
const printError = err => console.error(err)

/** Pack an installed package for later distribution */
pack('package_name')
  .then(printResult)
  .catch(printError)

/** Install a prebuilt packed package */
install('package_name')
  .then(printResult)
  .catch(printError)

TEST

Unit tests output for current release:

prebuilt: rewriting C:\Users\ColeChamberlain\noderaider\prebuilt\node_modules\fake-package\package.json to remove node-gyp install step. running node-gyp clean for package at C:\Users\ColeChamberlain\noderaider\prebuilt\node_modules\fake-package running node-gyp configure for package at C:\Users\ColeChamberlain\noderaider\prebuilt\node_modules\fake-package running node-gyp build for package at C:\Users\ColeChamberlain\noderaider\prebuilt\node_modules\fake-package in debug mode running node-gyp build for package at C:\Users\ColeChamberlain\noderaider\prebuilt\node_modules\fake-package in release mode pack: node-gyp finished executing! prebuilt: rewriting C:\Users\ColeChamberlain\noderaider\prebuilt\node_modules\fake-package\package.json to remove node-gyp install step. running node-gyp clean for package at C:\Users\ColeChamberlain\noderaider\prebuilt\node_modules\fake-package running node-gyp configure for package at C:\Users\ColeChamberlain\noderaider\prebuilt\node_modules\fake-package running node-gyp build for package at C:\Users\ColeChamberlain\noderaider\prebuilt\node_modules\fake-package in debug mode running node-gyp build for package at C:\Users\ColeChamberlain\noderaider\prebuilt\node_modules\fake-package in release mode pack: node-gyp finished executing! extracting package at prebuilt/win32/x64/v6.2.2/invalid-package.7z to C:\Users\ColeChamberlain\noderaider\prebuilt\node_modules\invalid-package... extracting package at prebuilt/win32/x64/v6.2.2/fake-package.7z to C:\Users\ColeChamberlain\noderaider\prebuilt\node_modules\fake-package...

TOC

lib

should exist.

return should.exist(lib);

#default

should not have a default function export.

return should.not.exist(lib.default);

#pack

should exist.

return should.exist(pack);

should be a function.

return pack.should.be.a('function');

should not throw for non-existant package name.

return function () {
  return pack().should.be.rejected;
}.should.not.throw();

should reject non-existant package name.

return pack().should.be.rejected;

should reject invalid package name.

return pack('invalid-package').should.be.rejected;

should pack valid package.

this.timeout(5000);
return pack('fake-package').should.be.fulfilled;

should create prebuilt.

this.timeout(5000);
pack('fake-package').then(function () {
  return access(fakePackagePath);
}).catch(function (err) {
  console.error(util.inspect(err));
  should.not.exist(err);
}).finally(function () {
  done();
});

#install

should exist.

return should.exist(install);

should be a function.

return install.should.be.a('function');

should not throw for non-existant package name.

return function () {
  return install().should.be.rejected;
}.should.not.throw();

should reject non-existant package name.

return install().should.be.rejected;

should reject invalid package name.

return install('invalid-package').should.be.rejected;

should install valid package.

return install('fake-package').should.be.fulfilled;

#query

0.2.4

9 years ago

0.2.3

9 years ago

0.2.2

9 years ago

0.2.1

9 years ago

0.2.0

9 years ago

0.1.14

9 years ago

0.1.13

10 years ago

0.1.12

10 years ago

0.1.11

10 years ago

0.1.10

10 years ago

0.1.9

10 years ago

0.1.8

10 years ago

0.1.7

10 years ago

0.1.6

10 years ago

0.1.5

10 years ago

0.1.4

10 years ago

0.1.3

10 years ago

0.1.2

10 years ago

0.1.1

10 years ago