Permalink
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
144 lines (96 sloc) 5.22 KB

packy

$ packy

Support me on Patreon Buy me a book PayPal Ask me anything Version Downloads

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.

💖 Support my projects

I open-source almost everything I can, and I try to reply everyone needing help using these projects. Obviously, this takes time. You can integrate and use these projects in your applications for free! You can even change the source code and redistribute (even resell it).

However, if you get some profit from this or just want to encourage me to continue creating stuff, there are few ways you can do it:

  • Starring and sharing the projects you like 🚀

  • Buy me a book—I love books! I will remember you after years if you buy me one. 😁 📖

  • PayPal—You can make one-time donations via PayPal. I'll probably buy a coffee tea. 🍵

  • Support me on Patreon—Set up a recurring monthly donation and you will get interesting news about what I'm doing (things that I don't share with everyone).

  • Bitcoin—You can send me bitcoins at this address (or scanning the code below): 1P9BRsmazNQcuyTxEqveUsnf5CERdq35V6

Thanks! ❤️

💫 Where is this library used?

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

  • np-init—Easily start a npm package from scratch.
  • 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