Commander.js Commander.js هو الحل الشامل لبناء واجهات سطر الأوامر (CLI) القوية في بيئة Node.js.
الإعداد الأساسي لسطر الأوامر
const { program } = require('commander');
program
.name('my-cli')
.description('Sample CLI utility written in Node.js')
.version('1.0.0');
تحليل الخيارات والرايات (Options)
program
.option('-p, --port <number>', 'specify port number', 3000)
.option('-s, --silent', 'suppress terminal output')
.option('-e, --env <mode>', 'execution environment', 'development')
.requiredOption('-c, --config <path>', 'path to configuration file');
program.parse(process.argv);
const options = program.opts();
console.log(options.port, options.silent, options.config);
<value>: قيمة معامل إلزامية.[value]: قيمة معامل اختيارية.- الرايات بدون قيم تعمل كمفاتيح تبديل منطقية (boolean).
الأوامر الفرعية (Subcommands)
program
.command('clone <source> [destination]')
.description('clone a repository into a directory')
.option('-b, --branch <name>', 'clone a specific branch')
.action((source, destination, cmdOptions) => {
console.log(`Cloning ${source} into ${destination || '.'}`);
});
program.parse();
تخصيص شاشات المساعدة (Help)
// إضافة نص تذييل مخصص لمخرجات --help
program.addHelpText('after', `
Example call:
$ my-cli -c ./app.json --port 8080
`);
// عرض شاشة المساعدة يدويا
program.outputHelp();