כיצד לבנות אפליקציית CLI ב-Node.js

כיצד לבנות אפליקציית CLI ב-Node.js
קוראים כמוך עוזרים לתמוך ב-MUO. כאשר אתה מבצע רכישה באמצעות קישורים באתר שלנו, אנו עשויים להרוויח עמלת שותף. קרא עוד.

אפליקציות CLI (Command Line Interface) הן אפליקציות מבוססות טקסט פשטניות הפועלות בטרמינל כדי להשלים משימות ספציפיות. יישומי CLI ממלאים תפקיד מכריע בזרימת העבודה של כמעט כל מפתח ומקצוען IT.





הם בעיקר כלי שירות המקיימים אינטראקציה עם מערכת ההפעלה או יישומים שמותקנים באופן מקומי או זמינים דרך האינטרנט כדי לבצע משימה בהתאם לקלט וההנחיות של המשתמש.





הבנת יישומי CLI

ממשק שורת פקודה מאפשר לך ליצור אינטראקציה עם תוכנית על ידי הקלדת שורות טקסט. תוכניות CLI רבות פועלות בצורה שונה בהתאם לפקודה שבה אתה משתמש כדי להפעיל אותן.





לדוגמה, תוכנית ls מציגה מידע על הקבצים ואת התוכן של ספריות. אתה יכול להפעיל את זה כך:

 ls -l /home

פקודה זו כוללת:



  • שם התוכנית: ls .
  • אפשרות (או דגל). במקרה הזה, היא אופציה שהיא קיצור של 'ארוך' ומייצרת מידע מפורט יותר.
  • ויכוח, /בית . כאן, הארגומנט מציין נתיב לספרייה להצגת מידע עבורו.

בעוד שכל תוכנית עשויה להגדיר ממשק שורת פקודה משלה, אלמנטים מסוימים נפוצים ונמצאים בשימוש נרחב. עליך לפעול לפי הסטנדרטים הללו כדי שמי שמכיר את ממשק שורת הפקודה יוכל להשתמש בתוכנות שלך בקלות.

מה זה Commander.js?

Commander.js הוא חבילה המאפשרת לבנות אפליקציות CLI ב-Node.js . יש לו ספרייה עשירה של תכונות המאפשרות לך לבנות אפליקציית CLI סטנדרטית, ולבצע הרבה מהעבודה הכבדה. אתה רק צריך להגדיר פקודות, אפשרויות ופונקציונליות עבור אפליקציית CLI שלך.





שילוב זה עם חבילות אחרות כגון Chalk.js לסטיילינג, אתה יכול ליצור במהירות אפליקציית CLI פונקציונלית מלאה ב-Node.js.

בניית אפליקציית CLI ב-Node.js באמצעות Commander.js

שקול דוגמה לאפליקציית CLI, עירוני-קלי, שמחפש את המשמעות של מילים וקיצורי מדיה חברתית מ המילון העירוני . תלמד כיצד ליצור את ה-CLI ולפרסם אותו ב- npm רישום החבילות כדי שאחרים יוכלו להתקין אותו.





צור תיקיה חדשה ואתחול פרויקט Node.js חדש עם הפקודות הבאות:

 mkdir urbanary-cli 
cd urbanary-cli
npm init -y

CLI זה ישתמש Axios לשליחת בקשות HTTP ל-API של מילון עירוני. אתה יכול להשתמש API מהיר כדי לבדוק נקודות קצה ולהציג אישורים.

  צילום מסך של API של מילון עירוני's page on Rapid API show user API credentials

CLI פשוט עם פקודה משנה ועזרה

כדי להתחיל לבנות את ה-CLI שלך, התקן את Commander ו-Axios עם הפקודה הבאה:

 npm install commander axios 

צור תיקייה חדשה, פַּח , בספריית הפרויקט שלך וקובץ ריק חדש, index.js :

 mkdir bin 
cd bin
touch index.js

ה פַּח (קיצור של 'בינארי') התיקיה חשובה מכיוון שהיא מכילה את קובץ נקודת הכניסה ש-Node קורא לו כאשר אתה מפעיל את ה-CLI שלך. ה index.js הקובץ הוא קובץ נקודת הכניסה הזה. כעת, ערוך את קובץ index.js והתחל לבנות את ה-CLI שלך עם Commander.js API.

ראשית, ייבא את תכנית חפץ ממפקד:

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

אתה תשתמש ב- תכנית אובייקט כדי להגדיר את ממשק התוכנית שלך, כולל פקודות משנה, אפשרויות וארגומנטים. לאובייקט יש שיטות מתאימות לכל אחד מאלה; לדוגמה, כדי להגדיר פקודה משנה, השתמש ב- פקודה שיטה.

הגדירו א למצוא תת-פקודה ל-CLI לחפש מילים מתוך מילון אורבני ולהוסיף תיאור עבורו באמצעות הקוד שלהלן:

 // index.js 
program
    .command('find <word>')
    .description('find meaning of a word or abbreviation or slang')

זה רושם א למצוא פקודה, המצפה למילה אחריה, ותיאור עבורה. השימוש בסוגריים זווית מסמל שהמילה היא טיעון נדרש; השתמש בסוגריים מרובעים במקום זאת ( [] ) כדי להפוך אותו לאופציונלי.

עליך להוסיף תיאור כי Commander.js משתמש בו כדי ליצור טקסט עזרה. כאשר אתה מפעיל את היישום עם עֶזרָה פקודה, תקבל מדריך שימוש סטנדרטי.

כדי לבדוק זאת, הוסף את הדברים הבאים:

 program.parse()

לאחר מכן הפעל את התוכנית והעביר אותה עֶזרָה פקודה כדי לקבל את הפלט למטה:

  צילום מסך המציג את הפלט של הפעלת פקודת העזרה

כך כל יישום CLI סטנדרטי יציג את העזרה שלו למשתמשים, ועם Commander, אתה לא צריך לדאוג ליצור אותו בעצמך. ה ו --עֶזרָה אפשרויות שימושיות לבדיקת מדריך השימוש עבור פקודה.

המיקרופון קולט אודיו פלט Windows 10

הגדרת אפשרויות והכנת התוכנית הסופית

אתה גם מגדיר אפשרות על ידי שרשרת ה אוֹפְּצִיָה שיטה להגדרת הפקודה.

הנה איך להגדיר אפשרות לכלול דוגמאות בהגדרות של מילים:

 program.option('-e, --example', "Display examples") 

והנה איך להגדיר אפשרות המציינת את מספר ההגדרות להחזיר:

 program.option( 
    '-c, --count [amount]',
    'amount of definitions to display (max is 10)'
)

ה אוֹפְּצִיָה השיטה מקבלת שני פרמטרים של מחרוזת, האחד עבור שם האופציה (הן קצר והן צורות ארוכות), והשני עבור התיאור שלה. התוספת [כמות] טיעון ב לספור option הוא הערך של מספר ההגדרות שיוצגו.

כעת, השיטה האחרונה להוסיף היא פעולה שיטה. אתה תיישם את למצוא הפונקציונליות של הפקודה בשיטה זו. הוסף אותו לשרשרת כך שהקוד שלך ייראה כעת כך:

 program 
    .command('find <word>')
    .description('find meaning of a word or abbreviation or slang')
    .option('-e, --example', "Display examples")
    .option(
        '-c, --count [amount]',
        'amount of definitions to display (max is 10)'
    )
    .action(async (word, options) => {});

עם ההגדרה הזו, הנה איזו פקודה לקבל שלוש הגדרות שלה חחח עם דוגמאות ייראה כך:

 urbanary-cli find lol -e -c 3 

או, באמצעות הצורה הארוכה של כל אפשרות:

 urbanary-cli find lol --example --count 3