Gulp тапшырмаларынын асинхрондуулугу
Сиз түшүнүшүңүз керек, бардык Gulp тапшырмалары - асинхрондуу. Бул эмнени билдирет, келгиле мисал үстүндө карап көрөлү. Жарыяланган тапшырманын ичинде эки жашырын тапшырма чакырылсын:
function taskD(cb) {
task1(cb);
task2(cb);
cb();
}
Асинхрондуулук деген, task2 тапшырмасы
task1 тапшырмасы аякташын күтпөй,
аны менен параллелдүү иштейт.
Келгиле мунун практикалык мисалын ойлонуп көрөлү. Биринчи тапшырма LESSти CSSке айландырсын, экинчи тапшырма - алынган CSSти минимизацияласын.
Анда биз көйгөйгө туш болобуз: анткени LESSтин компиляция натыйжасы кирбестен, CSS файлын минимизациялоого болбойт!
Бирок, эгерде тапшырмалар синхрондуу иштесе - биринин артынан бири иштелсе, биз башка көйгөйгө туш болобуз: параллелдүү иштетилүүгө боло турган тапшырмалар, биринин артынан бири иштелип, Gulptун ишин жайлатмак. Келгиле мунун мисалын дагы ойлонуп көрөлү.
Биринчи тапшырма CSS файлдарын минимизацияласын, экинчи тапшырма - JavaScript файлдарын минимизацияласын. Бул эки байланышпаган амалдарды бир эле убакта аткарууга болоорун ачык көрүүгө болот.
Бактыга жараша, Gulp каражаттарды сунуштайт, кайсы тапшырмалар параллелдүү, кайсылары катарма-катар иштелиши керек экенин так белгилөөгө мүмкүндүк берет. Бул каражаттарды биз кийинки сабакта карап чыгабыз.
Биринин артынан бири гана иштелиши керек болгон эки тапшырманын мисалын ойлоп табыңыз.
Параллелдүү гана иштелиши керек болгон эки тапшырманын мисалын ойлоп табыңыз.