كيفية تخصيص المهام النخر
في بعض الأحيان نحتاج إلى كتابة بعض مهامنا النخيلة ، إليك مثال محدد
1. التحضير
1. إنشاء دليل جديد G1
2. قم بإنشاء حزمة جديدة. json ووضعها في G1
3. قم بإنشاء gruntfile.js جديد ووضعه في G1
package.json
نسخة الكود كما يلي:
{
"الاسم": "G1" ،
"الإصدار": "0.1.0" ،
"مؤلف": "snandy" ،
"الصفحة الرئيسية": "http://www.g1.com" ،
"DevDependencies": {
"Grunt": "~ 0.4.0"
}
}
4. أدخل G1 بواسطة CD ، قم بتثبيت تثبيت حزمة Grunt NPM
هيكل الدليل بأكمله على النحو التالي
gruntfile.js فارغة مؤقتا.
2. إنشاء مهمة أسهل
grunt.registerTask (اسم TaskName ، [الوصف ،] TaskFunction)
اسم المهمة TaskName ، استخدم Grunt + TaskName في سطر الأوامر
وصف المهمة
تنفيذ المهام TaskFunction
املأ الرمز في gruntfile.js
نسخة الكود كما يلي:
module.exports = function (grunt) {
grunt.registerTask ('myTask' ، 'أبسط عرض مهمة ، يطبع مخرجات مختلفة وفقًا للمعلمات.' ، function (arg1 ، arg2) {
if (الحجج. length === 0) {
grunt.log.writeln ('Task' + this.name + "، لا تم تمرير أي معلمات") ؛
} آخر إذا (الحجج. length === 1) {
grunt.log.writeln ('Task' + this.name + "، هناك معلمة هي" + arg1) ؛
} آخر {
grunt.log.writeln ('Task' + this.name + "، هناك معلمتان:" + arg1 + "،" + arg2) ؛
}
}) ؛
} ؛
تم تسجيل مهمة "MyTask" لتنفيذ أبسط تطبيق للمطبوعات المختلفة وفقًا للمعلمات التي تم تمريرها. نحتاج إلى إدخال سطر الأوامر وفقًا لنتائج التشغيل.
أدخل دليل G1 وأدخل Grunt MyTask
أدخل Grunt Mytask: Snandy
أضف القولون إلى اسم المهمة لتمرير الوسيطة
أدخل Grunt MyTask: Snandy: Backus
يمكن أن تمر فاصل القولون
3. إنشاء مهام متعددة مرة واحدة
grunt.registerMultitask (اسم TaskName ، [الوصف ،] TaskFunction)
يمكنك أن ترى أن المعلمات هي نفسها وأن أسماء الأسلوب مختلفة. لكن طريقة الاستخدام مختلفة ، تحتاج إلى تهيئة التكوين أولاً ، gruntfile.js كما يلي
نسخة الكود كما يلي:
module.exports = function (grunt) {
grunt.initConfig ({
سجل: {
T1: [1 ، 2 ، 3] ،
T2: "Hello World" ،
T3: خطأ
}
}) ؛
grunt.registerMultItask ('log' ، 'log stuff.' ، function () {
grunt.log.writeln (this.target + ':' + this.data) ؛
}) ؛
} ؛
أدخل دليل G1 واختبره بشكل منفصل
أدخل Grunt وسيتم تنفيذ ثلاث مهام فرعية بدوره T1 ، T2 ، T3
أدخل السجل الشجاع: T1 ، سجل Grunt: T2 ، سجل Grunt: T3 على التوالي
4. التواصل بين المهام
يمكن استدعاء مهمة أخرى داخل مهمة واحدة ، على النحو التالي
نسخة الكود كما يلي:
module.exports = function (grunt) {
grunt.registerTask ('myTask' ، 'أبسط عرض مهمة ، يطبع مخرجات مختلفة وفقًا للمعلمات.' ، function (arg1 ، arg2) {
if (الحجج. length === 0) {
grunt.log.writeln ('Task' + this.name + "، لا تم تمرير أي معلمات") ؛
} آخر إذا (الحجج. length === 1) {
grunt.log.writeln ('Task' + this.name + "، هناك معلمة هي" + arg1) ؛
} آخر {
grunt.log.writeln ('Task' + this.name + "، هناك معلمتان:" + arg1 + "،" + arg2) ؛
}
}) ؛
grunt.registerTask ('Default' ، 'Default' ، function () {
// استدعاء mytask
grunt.task.run ('mytask: param1: param2')
})
} ؛
أدخل سطر الأوامر وأدخل Grunt
اتصل بمهام متعددة ، وقم بتمريرها إلى طريقة التشغيل مفصولة بفواصل ، أو في نموذج صفيف
نسخة الكود كما يلي:
grunt.registerTask ('Default' ، 'Default' ، function () {
grunt.task.run ('mytask1' ، 'mytask2')
// أو
grunt.task.run (['mytask1' ، 'mytask2'])
})