0.2.4 • Published 8 years ago

prebuilt v0.2.4

Weekly downloads
29
License
MIT
Repository
github
Last release
8 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

8 years ago

0.2.3

8 years ago

0.2.2

8 years ago

0.2.1

8 years ago

0.2.0

8 years ago

0.1.14

8 years ago

0.1.13

8 years ago

0.1.12

8 years ago

0.1.11

8 years ago

0.1.10

8 years ago

0.1.9

8 years ago

0.1.8

8 years ago

0.1.7

8 years ago

0.1.6

8 years ago

0.1.5

8 years ago

0.1.4

8 years ago

0.1.3

8 years ago

0.1.2

8 years ago

0.1.1

8 years ago