prebuilt v0.2.4
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.
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_nameInstall prebuilt packages on a machine, node version, platform and bitness will be handled automatically:
prebuilt --install package_name
# shorthand
prebuilt -i package_nameAPI
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
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago

