بناء أدوات سطر الأوامر باستخدام 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
أدوات سطر الأوامر ممتازة لأتمتة المهام المتكرّرة وتحسين سير عمل المطوّرين.
التعليقات (0)
اترك تعليقًا
لا توجد تعليقات بعد. كن أول من يشارك أفكاره!