var elektron pochta ro'yxati = talab ( 'emailListModule' ) var emailComposer = talab qilish ( 'emailComposerModule' )
modul . eksport . renderBase = funktsiya () {
// ...
}
Shu bilan birga, Internetda Dojo va RequireJS tomonidan ishlab chiqilgan AMD moduli standarti (Jeyms Burk, 2008) ishga tushdi. U ekvivalent funktsiyalar to'plamini qo'llab-quvvatladi va JavaScript kodini birlashtirish uchun o'zining qurish tizimi bilan birga keldi:
aniqlang ( 'emailBaseModule' ,
[ 'talab qilish' , 'eksport qilish' , 'emailListModule' , 'emailComposerModule' ], funktsiya ( talab qilish , eksport qilish , emailListModule , emailComposerModule ) {
eksport . renderBase = funktsiya () {
// ...
}
}
)
Bir necha yil o'tgach, Browserify chiqdi (Jeyms Halliday, 2011), frontend muhandislariga CommonJS-ni frontendda ham ishlatish imkoniyatini berdi. CommonJS modullarni birlashtirish va import/eksport sintaksisi uchun de-fakto standartga aylandi .
CommonJS bilan ishlashda bir nechta muammolar bor edi. Ular orasida qo'ng'iroqlarni talab qilish sharti bilan sinxron bo'ladi va CommonJS modulining aniqlik algoritmi Internetda foydalanish uchun ideal emas. Bundan tashqari, uni ishlatadigan kodni ba'zi hollarda statik tahlil qilib bo'lmaydi (TypeScript dasturchisi sifatida bu sizning quloqlaringizni ko'tarishi kerak), chunki module.exports har qanday joyda paydo bo'lishi mumkin (hatto hech qachon erishilmaydigan o'lik kod filiallarida ham) va talab qo'ng'iroqlari istalgan joyda paydo bo'lishi va o'zboshimchalik qatorlari va ifodalarini o'z ichiga olishi mumkin, bu esa JavaScript dasturini statik ravishda bog'lashni imkonsiz qiladi va barcha havola qilingan fayllar haqiqatan ham mavjudligini va ular eksport qilganlarini eksport qilishini tasdiqlaydi.
JavaScript modullarining qisqacha tarixi
Shu fonda ES2015 — ECMAScript tilining oltinchi nashri — import va eksport uchun toza sintaksisga ega va statik tahlil qilinadigan yangi standartni taqdim etdi. Bu shunday ko'rinadi:
// emailBaseModule.js
Do'stlaringiz bilan baham: |