Search code examples
vorpal.js

How to separate commands into files Vorpal.js


I have many commands and each of them is long. For example, I have:

  • create
  • read
  • update
  • delete

I want to put them in separate files:

  • ./commands/create.js
  • ./commands/read.js
  • ./commands/update.js
  • ./commands/delete.js

and I want to require them in app.js:

require('./commands/create.js');
// ...

so I can:

node app.js create HelloWorld

How can I achieve this?


Solution

  • I would do something like this:

    // create.js
    
    function create(args, cb) {
      // ... your logic
    }
    
    module.exports = function (vorpal) {
      vorpal
        .command('create')
        .action(create);
    }
    

    Then in your main file, you can do:

    // main.js
    
    const vorpal = Vorpal();
    
    vorpal
      .use(require('./create.js'))
      .use(require('./read.js'))
      .show();
    

    More on this here.