تطوير الواجهة الخلفية 2 دقيقة للقراءة 722 مشاهدات

بناء أدوات سطر الأوامر مع Node.js: من البرامج البسيطة إلى التطبيقات المعقدة

أنشئ أدوات سطر أوامر قوية مع Node.js باستخدام Commander.js وInquirer. تعلّم تحليل الوسيطات والمطالبات التفاعلية.

Terminal command line

بناء أدوات سطر الأوامر باستخدام Node.js

أنشئ أدوات سطر أوامر قوية للأتمتة والإنتاجية.

إعداد المشروع

mkdir my-cli && cd my-cli
npm init -y
npm install commander inquirer chalk ora

// package.json
{
    "name": "my-cli",
    "bin": {
        "mycli": "./bin/index.js"
    }
}

الهيكل الأساسي للأداة

#!/usr/bin/env node
// bin/index.js

const { program } = require('commander');
const chalk = require('chalk');

program
    .name('mycli')
    .description('My awesome CLI tool')
    .version('1.0.0');

program
    .command('greet <name>')
    .description('Greet someone')
    .option('-l, --loud', 'Say it loudly')
    .action((name, options) => {
        const greeting = `Hello, ${name}!`;
        console.log(options.loud ? chalk.bold.green(greeting.toUpperCase()) : greeting);
    });

program.parse();

المطالبات التفاعلية

const inquirer = require('inquirer');

async function setup() {
    const answers = await inquirer.prompt([
        {
            type: 'input',
            name: 'projectName',
            message: 'Project name:',
            default: 'my-project'
        },
        {
            type: 'list',
            name: 'template',
            message: 'Choose a template:',
            choices: ['React', 'Vue', 'Angular']
        },
        {
            type: 'confirm',
            name: 'typescript',
            message: 'Use TypeScript?',
            default: true
        }
    ]);

    return answers;
}

مؤشّرات التقدّم

const ora = require('ora');

async function downloadFiles() {
    const spinner = ora('Downloading files...').start();

    try {
        await download();
        spinner.succeed('Download complete!');
    } catch (error) {
        spinner.fail('Download failed');
        process.exit(1);
    }
}

النشر إلى npm

npm login
npm publish

أدوات سطر الأوامر ممتازة لأتمتة المهام المتكرّرة وتحسين سير عمل المطوّرين.

مشاركة هذه المقالة:
ES
كتبه

Edrees Salih

مهندس برمجيات متكامل يتمتع بخبرة 9 سنوات. شغوف ببناء حلول قابلة للتطوير ومشاركة المعرفة مع مجتمع المطورين.

عرض الملف الشخصي

التعليقات (0)

اترك تعليقًا

لن يتم نشر بريدك الإلكتروني.

لا توجد تعليقات بعد. كن أول من يشارك أفكاره!

مقالات ذات صلة

مقالات ذات صلة

هل تحتاج مساعدة في مشروعك؟

احجز استشارة مجانية لمدة 30 دقيقة لمناقشة تحدياتك التقنية واستكشاف الحلول معًا.