@kgryte/package-json v2.0.9
package.json
Creates a
package.jsonfile.
Installation
$ npm install @kgryte/package-jsonUsage
var cp = require( '@kgryte/package-json' );cp( dest, opts )
Asynchronously create a package.json file in a specified destination directory.
cp( 'path/to/a/directory', onCreate );
function onCreate( error ) {
if ( error ) {
throw error;
}
console.log( 'Success!' );
}The function accepts the following options:
- template:
package.jsontemplate name. Default:'default'. - name: package name. Default:
''. - desc: package description. Default:
''. - author: package author.
- email: package author email.
- repo: package Github repository.
- cmd: package command, if the package should be used as a CLI tool.
- keywords: package keywords. Default:
[]. - license: package license. Default:
'MIT'. - private:
booleanindicating whether a package is private. Default:false.
By default, a default template is used. To specify a different package.json template, set the template option.
cp( 'path/to/a/directory', {
'template': 'default'
});To specify package.json fields, set the corresponding options.
cp( 'path/to/a/directory', {
'name': 'beep',
'author': 'Jane Doe',
'repo': 'janedoe/beep'
});cp.sync( dest, opts )
Synchronously create a package.json file in a specified destination directory.
cp.sync( 'path/to/a/directory' );The function accepts the same options as the asynchronous version.
Notes
Supported templates may be found in the `./lib` directory and are named according to the directory name.- The package name is validated using validate-npm-package-name.
The package repository is assumed to be a Github repository. Thus, only the owner/organization and repository names are needed; e.g.,
kgryte/package-jsonIn asynchronous mode, the module checks for NPM package name availability. If an internet connection is not available, the module assumes that the package name is available in order to allow offline use.
Examples
var mkdirp = require( 'mkdirp' ),
path = require( 'path' ),
cp = require( '@kgryte/package-json' );
var dirpath = path.resolve( __dirname, '../build/' + new Date().getTime() );
mkdirp.sync( dirpath );
cp.sync( dirpath, {
'template': 'default',
'name': 'beep',
'desc': 'Beep boop.',
'author': 'Jane Doe',
'email': 'jane@doe.com',
'repo': 'janedoe/beep',
'cmd': 'beep',
'keywords': [
'beep',
'boop',
'bop'
],
'license': 'MIT'
});To run the example code from the top-level application directory,
$ node ./examples/index.jsCLI
Installation
To use the module as a general utility, install the module globally
$ npm install -g @kgryte/package-jsonUsage
Usage: packagejson [options] [destination]
Options:
-h, --help Print this message.
-V, --version Print the package version.
-tmpl --template name Template name. Default: 'default'.
--name name Package name. Default: ''.
-desc --description desc Package description. Default: ''.
--author author Package author.
--email email Package author email.
--repo repo Package Github repository. Default: ''.
--cmd name Package command, if package is a CLI tool.
--keywords keywords Package keywords; e.g., word1,word2,...,wordN.
--license name Package license. Default: 'MIT'.
--private Specifies whether a package is private.Examples
$ cd ~/my/project/directory
$ packagejson
# => creates a package.json file in the current working directoryTo specify a destination other than the current working directory, provide a destination.
$ packagejson ./../some/other/directoryTests
Unit
Unit tests use the Mocha test framework with Chai assertions. To run the tests, execute the following command in the top-level application directory:
$ make testAll new feature development should have corresponding unit tests to validate correct functionality.
Test Coverage
This repository uses Istanbul as its code coverage tool. To generate a test coverage report, execute the following command in the top-level application directory:
$ make test-covIstanbul creates a ./reports/coverage directory. To access an HTML version of the report,
$ make view-covLicense
Copyright
Copyright © 2015. Athan Reines.
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
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago