📦 Set default fields in your package.json files.
JavaScript
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
bin
lib
.gitignore
CONTRIBUTING.md
DOCUMENTATION.md
LICENSE
README.md
package.json

README.md

packy

$ packy

Patreon PayPal AMA Version Downloads Get help on Codementor

Set default fields in your package.json files.

This is useful to me especially to autofill my author and license fields, so I don't have to type my long name, email address and website each time when I start a new npm package. Yes, it bumps your productivity! 🚀

☁️ Installation

You can install the package globally and use it as command line tool:

$ npm i -g packy

Then, run packy --help and see what the CLI tool can do.

$ packy --help
Usage: packy [options]

Set default fields in your package.json files.

Options:
  -v, --version  Displays version information.
  -h, --help     Displays this help.

Examples:
  $ packy

Make sure the config file is available at ~/.packy.js or ~/pack.json.

Documentation can be found at https://github.com/IonicaBizau/packy#readme.

Configuring ~/.packy.js or ~/.packy.json

To make packy usable on your machine, you have to create a file named packy.js or packy.json in your home directory ($HOME sweet ~ 😂). 🏡 If you always to override your package.json fields with static data, the jsonformat is easier for you. If you need some dynamic fields (e.g. if the license field from package.json contains GPL, then return "GPL-3" otherwise return "MIT" (see the example below). It should work for subfields (deep merge) too. 🍀

JSON Format (~/.packy.json)

My ~/.packy.json could look like this:

{
    "author": "Ionică Bizău <bizauionica@gmail.com> (http://ionicabizau.net)"
  , "license": "MIT"
}

JS Format (~/.packy.js)

My ~/.packy.js looks like this:

module.exports = {
    author: "Ionică Bizău <bizauionica@gmail.com> (http://ionicabizau.net)"
  , license: function (license) {
       // Few of my projects are licensed under GPL,
       // so don't override the license field
        if (/gpl/i.test(license)) {
            return license;
        }
        return "MIT";
    }
};

📝 Documentation

For full API reference, see the DOCUMENTATION.md file.

😋 How to contribute

Have an idea? Found a bug? See how to contribute.

💰 Donations

Another way to support the development of my open-source modules is to set up a recurring donation, via Patreon. 🚀

PayPal donations are appreciated too! Each dollar helps.

Thanks! ❤️

💫 Where is this library used?

If you are using this library in one of your projects, add it in this list.

  • I developed packy to save me some time when having to create the package.json files. Usually, now, I do npm init, without filling the author and license fields (because they are repetitive things) and then packy. It automagically fills the additional fields from my config file (~/.packy.json). 💖

📜 License

MIT © Ionică Bizău