يجب عليك أولاً التأكد من وجود بيئة Node.js على الكمبيوتر
وتنفيذ التعليمات البرمجية التالية في سطر الأوامر لتهيئة ملف package.json
npm init -y
في هذا الوقت، سيتم الإبلاغ عن خطأ بالتأكيد تنفيذ mycli
على سطر الأوامر.
قم بتكوين الأمر المخصص
package.json
لإضافة حقل bin
، وربط الأمر mycli
.
"bin": { "مايكلي": "./test.js" }،
/test.js
جديدconsole.log ("تم تنفيذ أمر mycli بنجاح")؛
install
مطلوب، ولكن لم يتم نشر المشروع على npm، لذا في الوقت الحالي، استخدم أمر npm link
لـ ربط الأمر mycli
بالعالم العالمي.في هذا الوقت، إذا قمت بتنفيذ mycli
من سطر الأوامر، فلن يتم الإبلاغ عن الخطأ بعد الآن.
ملف test.js
لتكوين البرنامج النصي
:console.log("تم تنفيذ أمر mycli بنجاح");
ثم قم بتنفيذ mycli
، وستظهر نافذة منبثقة للخطأ.
وذلك لأنه عند تنفيذ أمر mycli
، فإنه يعادل السماح للكمبيوتر بتنفيذ الملف، ولا يمكن لنظام الكمبيوتر تنفيذ ملف js مباشرة . وهذا يتطلب منا إضافة تكوين إلى السطر الأول من التعليمات البرمجية النصية لتحديد node.js
على جهاز الكمبيوتر لتنفيذ ملف البرنامج النصي js هذا.
#!/usr/bin/env العقدة
نظرًا لأن بيئة التنفيذ قد تغيرت، فأنت بحاجة إلى حذف الملفات المرتبطة سابقًا، وقد يكون موقع الملف هو C:Program Filesnodejsnode_modules
. ابحث عن mycli
واحذفه، ثم نفذه npm link
مرة أخرى.
الآن قم بتنفيذ mycli
على وحدة التحكم مرة أخرى، ويمكنك أن ترى أن وحدة التحكم تطبع بشكل صحيح.
Chalk
لإخراج الخطوط الملونةOra
، على غرارcommander
inquirer
مثل: طرح الأسئلة...)Chalk
npm install [email protected] -S
const chalk = require("chalk"); // الطباشير // const hello = chalk.red("hello"); // const hello = chalk.blue.bgRed("hello"); // const hello = chalk.blue.bgYellow("hello"); const hello = chalk.rgb(200, 200, 200).bgRgb(0, 200, 3)("hello"); console.log(hello);
Ora
npm install [email protected] -S
const ora = require("ora"); // أورا ثابت الدوار = أورا({ النص: "جاري التثبيت..." }); spinner.start(); setTimeout(() => { // spinner.stop(); spinner.succeed("تم التثبيت بنجاح"); // console.log("تم التثبيت بنجاح"); }, 2000)
start
التحميلstop
عن التحميلsucceed
وينتهي التحميل بأسلوب ناجحالقائد
، مثل vue -V
git --version
vue create
والأوامر الأخرى، تحتاج إلى استخدام مكتبة القائد لتنفيذ مثل هذه الأوامر.
-V
--help
وما إلى ذلك بعد أن يتم فهم الأمر على أنه معلمات للأمر، ثم نحتاج إلى الحصول على هذه المعلمات والتعامل مع الأحداث المختلفة من خلال الحكم على الاختلافات في المعلمات.
في بيئة العقدة ، يمكن الحصول على هذه المعلمة من خلال process.argv
. تساعدنا مكتبة القائد في تغليف بعض الأساليب دون الاضطرار إلى الحكم على التعليمات التي يحملها مدخلات المستخدم.
npm install [email protected] -S
const Commander = require("commander"); // ... Commander.parse(process.argv); // بعد
اكتمال التثبيت، سيزودنا Commander تلقائيًا ببعض الأوامر، مثل --help
لنختبره أدناه:
mycli --help
Commander version("1.0.0");
قم بتنفيذ mycli -V
ويمكنك أن ترى أن وحدة التحكم تطبع رقم الإصدار 1.0.0
.
أسلوب الأمر المخصص
commander.option(指令名, 描述, 回调函数)
--init
:Commander.option("--init", "this is init", () => { // الطباشير // const hello = chalk.red("hello"); // const hello = chalk.blue.bgRed("hello"); // const hello = chalk.blue.bgYellow("hello"); const hello = chalk.rgb(200, 200, 200).bgRgb(0, 200, 3)("hello"); console.log(hello); // أورا ثابت الدوار = أورا({ النص: "جاري التثبيت..." }); spinner.start(); setTimeout(() => { // spinner.stop(); spinner.succeed("تم التثبيت بنجاح"); // console.log("تم التثبيت بنجاح"); }، 1000) })
الآن قم بتنفيذ اختبار mycli --init
:
هي Commander.option("--number <num>", "log a number", (num) => { console.log(num); })
يشير <参数名>
إلى المعلمات التي يجب تمريرها، ويشير [参数名]
إلى المعلمات التي لا يلزم تمريرها. أدخل mycli --number 100
على وحدة التحكم واضغط على Enter، ويمكنك أن ترى 100
.
طريقة الأمر المخصص
Commander.command("إنشاء <projectName>").action((projectName)=>{ console.log(projectName); })
قم بتنفيذ mycli create xx
واضغط على Enter. يمكنك أن ترى xx
يتم إخراجه على وحدة التحكم.
اعرض المساعدة
عن طريق تنفيذ mycli --help
يمكنك أن ترى أن التعليمات والأوامر التي قمنا بتكوينها للتو تظهر في قائمة المساعدة.
المستفسر
npm تثبيت المستفسر -S
prompt
لطرحالاستفسار.prompt([ { النوع: "الإدخال"، الاسم: "اسم المستخدم"، الرسالة: "الرجاء إدخال اسم المستخدم:" } ]).ثم((الإجابة)=>{ })
يشير type
إلى نوع السؤال، وقد تكون القيمة: input
، number
، password
، editor
، إلخ.
answer
هي {username: 输入的值}
input
من نوع الإدخالconst inquirer = require("inquirer"); Commander.command("إضافة مستخدم").action(() => { المستفسر.مطالبة([ { النوع: "الإدخال"، الاسم: "اسم المستخدم"، الرسالة: "الرجاء إدخال اسم المستخدم:" } ]).ثم((الإجابة) => { console.log(answer); }) })
confirm
Commander.command("testcon").action(() => { المستفسر.مطالبة([ { النوع: "تأكيد"، الاسم: "العمر"، الرسالة: "هل عمرك أكثر من 18 عامًا؟" } ]).ثم((الإجابة) => { console.log(answer); }) })
أدخل y
أو n
لإصدار الحكم.
list
نوع اختيار الراديوCommander.command("testlist").action(() => { المستفسر.مطالبة([ { اكتب: "قائمة"، الاسم: "ليب"، الرسالة: "حدد إطار العمل المطلوب استخدامه:"، الاختيارات: [ "فيو 2"، "فيو 3"، "رد فعل"، "ممشوق"، ] } ]).ثم((الإجابة) => { console.log(answer); }) })
تنفيذ الأمر mycli testlist
:
download-git-repo هو أداة لسحب التعليمات البرمجية.
قم بتثبيت
npm install [email protected] -S
const downgit = require("download-git-repo"); downgit("github:kongcodes/vue3-vant"، downUrl، { clone: false }، function (err) { console.log(يخطئ) })
من المفهوم أن المعلمة الأولى في طريقة downgit
هي تنزيل قالب مشروع vue3-vant
الخاص بمستخدم kongcodes من github. المعلمة الثانية downUrl
هي الدليل الذي يجب تنزيل القالب إليه. clone
المعلمة الثالثة هو ما إذا كان سيتم استخدام git clone
للتنزيل. المعلمة الرابعة هي بعض الأشياء التي سيتم تنفيذها عند اكتمال التنزيل.
command
Commander.command("إنشاء <projectName>").action((projectName) => {بالتزامن مع طريقة الأمر
ثابت الدوار = أورا({ النص: "جارٍ التنزيل https://github.com/kongcodes/vue3-vant..." }); spinner.start(); fs.mkdirSync(`./${projectName}`); const downUrl = `${process.cwd()}\${projectName}`; downgit("github:kongcodes/vue3-vant"، downUrl، { clone: false }، function (err) { إذا (أخطأ) أخطأ؛ spinner.stop(); console.log(chalk.green("downgit Success")); }) })
قم بتنفيذ mycli create pro
واضغط على Enter. سيتم إنشاء دليل pro
في الدليل الحالي وسيتم تنزيل قالب vue3-vant
إلى هذا الدليل.
https://github.com/kongcodes/mycli