من المسلم به أن المعالجة السابقة استخدمت العملية المدمجة. AGRV ، والتي يمكن أن تعمل ، لكن ليس من السهل العمل ، لذلك كتب Master TJ "يا إلهي" ، وهو متطور تمامًا:
1. التثبيت
نسخة الكود كما يلي:
NPM تثبيت قائد
2. تحليل الخيار
يتم تعريف الخيارات مع القائد باستخدام طريقة .option () ، والتي تعمل أيضًا كوثائق للخيارات. المثال أدناه args args وخيارات من Process.Argv ، تاركين args المتبقية كبرنامج. Args مجموعة لم يتم استهلاكها بواسطة الخيارات.
نسخة الكود كما يلي:
#!/usr/bin/env node
/**
* تبعيات الوحدة النمطية.
*/
var program = require ('commander') ؛
برنامج
.version ('0.0.1')
.option ('-p ،-peppers' ، 'add peppers')
.option ('-p ،-pineaple' ، 'add Paneaple')
.option ('-B ،--BBQ' ، 'add sauce bbq')
.option ('-c ،-cheese [type]' ، "أضف النوع المحدد من الجبن [الرخام]" ، "الرخام")
.parse (process.argv) ؛
console.log ('لقد طلبت بيتزا مع:') ؛
if (program.peppers) console.log (' - Peppers') ؛
if (program.PineApple) console.log (' - الأناناس') ؛
if (program.bbq) console.log (' - BBQ') ؛
console.log (' - ٪ s Cheese' ، program.Cheese) ؛
قد يتم تمرير الأعلام القصيرة كأرجح واحد ، على سبيل المثال -abc يعادل -A -b -c. خيارات متعددة الكلمات مثل "محرك القالب" مغلفة بالجمل ، وتصبح برنامجًا.
3. توليد معلومات المساعدة تلقائيًا
نسخة الكود كما يلي:
$ ./examples/pizza -help
الاستخدام: البيتزا [خيارات]
خيارات:
-V ، -إخراج رقم الإصدار
-P ، -peppers يضيفون الفلفل
-P ، -pineaple أضف أناناس
-B ، -BBQ إضافة صلصة الشواء
-C ، -cheese <type> أضف النوع المحدد من الجبن [الرخام]
-H ، -معلومات استخدام الإخراج
بالطبع يمكنك أيضًا توليدها يدويًا:
نسخة الكود كما يلي:
#!/usr/bin/env node
/**
* تبعيات الوحدة النمطية.
*/
var program = require ('../') ؛
قائمة الوظائف (Val) {
إرجاع Val.Split ('،'). الخريطة (رقم) ؛
}
برنامج
.version ('0.0.1')
.option ('-f ،-foo' ، 'تمكين بعض foo')
.option ('-b ،-bar' ، 'تمكين بعض البار')
.option ('-b ،--baz' ، "تمكين بعض الباز) ؛
// يجب أن يكون قبل .parse () منذ ذلك الحين
// Node's Emit () فوري
program.on ('-HELP' ، function () {
console.log ('أمثلة:') ؛
console.log ('') ؛
console.log ('$ custom-help-help') ؛
console.log ('$ custom -help -H') ؛
console.log ('') ؛
}) ؛
program.parse (process.argv) ؛
console.log ('agting') ؛
4. إعطاء مثال كامل
نسخة الكود كما يلي:
نطاق الوظائف (val) {
إرجاع Val.Split ('..'). الخريطة (رقم) ؛
}
قائمة الوظائف (Val) {
إرجاع Val.Split ('،') ؛
}
وظيفة جمع (فال ، مذكرة) {
memo.push (val) ؛
مذكرة إرجاع
}
انتشار الوظيفة (V ، المجموع) {
إجمالي الإرجاع + 1 ؛
}
برنامج
.version ('0.0.1')
استخدام
.option ('-i ،-integer <n>' ، "حجة عدد صحيح" ، parseint)
.option ('-f ،-float <n>' ، 'A Float Pixition' ، Parsefloat)
.option ('-r ،-المدى <a> .. <b>' ، 'a range' ، المدى)
.option ('-l ،-list <evels>' ، 'A List' ، List)
.option ('-O ،-الاختياري [القيمة] ، "قيمة اختيارية")
.option ('-C ،-جمع [قيمة] ، "قيمة قابلة للتكرار" ، جمع ، [])
.option ('-v ،-verbose' ، "قيمة يمكن زيادتها" ، زيادة ، 0)
.parse (process.argv) ؛
console.log ('int: ٪ j' ، program.Integer) ؛
console.log ('float: ٪ j' ، program.float) ؛
console.log ('اختياري: ٪ j' ، program.Optional) ؛
program.range = program.range || [] ؛
console.log ('Range: ٪ J .. ٪ J' ، program.range [0] ، program.range [1]) ؛
console.log ('LIST: ٪ J' ، program.list) ؛
console.log ('Collect: ٪ j' ، program.collect) ؛
console.log ('Verbosity: ٪ j' ، program.VerBose) ؛
console.log ('args: ٪ j' ، program.args) ؛