Boxcutter
A utility knife for interacting with package.json
Installation
Local (recommended)
npm install boxcutter --save
Global
sudo npm install boxcutter -g
Usage
CLI
Walks up your directory tree looking for a package.json. If it finds one, it will load it
and allow you to interact with it:
Usage: boxcutter <command>
available commands:
get : get a value from the package.json
set : set a value in the package.json
help <command> : get help for the specified command
Example:
> boxcutter get version
1.0.0
> boxcutter set version 1.0.1
> boxcutter get version
1.0.1
>
API
const Boxcutter = require( 'boxcutter' );
const boxcutter = Object.assign( {}, Boxcutter.Boxcutter );
boxcutter.load( './package.json' );
console.log( boxcutter.get( 'version' ) );
load( filename )
boxcutter.load( './package.json' );
Loads the given package.json. Can take a relative or absolute path.
get( key )
const value = boxcutter.get( 'version' );
Gets the given key. Uses Delver to retrieve the value, so you can use dot and bracket syntax:
const testScript = boxcutter.get( 'scripts.test' );
const firstKeyword = boxcutter.get( 'keywords[0]' );
set( key, value )
boxcutter.set( 'version', '1.0.1' );
Sets the given key to the value specified. Uses Delver to set the value, so you can use dot and bracket notation:
boxcutter.set( 'scripts.test', 'tape test/*.js' );
boxcutter.set( 'keywords[0]', 'boxcutter' );
save( filename[, options[, callback]] )
boxcutter.save( './package.json', function( error ) {
if ( error ) {
console.error( error );
}
} );
Saves the current settings to an output file. You can pass options to control the output, eg:
boxcutter.save( './package.json', {
json: {
indent: 4
}
}, function( error ) {
if ( error ) {
console.error( error );
}
} );
If you call this method without a callback, it will execute synchronously and potentially throws, eg:
try {
boxcutter.save( './package.json' );
}
catch( ex ) {
console.error( ex );
}
or, with options but no callback:
try {
boxcutter.save( './package.json', {
json: {
indent: 4
}
} );
}
catch( ex ) {
console.error( ex );
}