A modulok javascript, formátumok, rakodógépek és összeszerelő modulok 10 percig

A modulok javascript, formátumok, rakodógépek és összeszerelő modulok 10 percig

Mi a célja és Webpack SystemJS? Mit jelent az AMD, az UMD vagy CommonJS? Hogyan viszonyulnak egymáshoz, és miért használják őket?

Mi az a modul?

Modul - ez pereispolzuemaya része a kód, amely a végrehajtás részleteit és az API nyílt, így könnyen le és használja azt egy másik kódot.

Miért modulok?

Technikailag a kódot lehet írni anélkül, hogy a modulok használatát. Modulok - a minta, amely különböző formában és különböző nyelveken a fejlesztők a 60-as és 70-es években.

  • absztrakt kódot. átadó a funkcionalitást a harmadik féltől származó könyvtárak, így nem kell érteni a bonyolult azok végrehajtását;
  • párosítani kódot. elrejti azt a modulban, ha nem akarja megváltoztatni;
  • újra kódot. így nem kell írni ugyanazt a dolgot újra és újra;
  • kezelése zavismosti. Könnyen függően változhatnak anélkül, hogy átírják a kódot.

Minták modulok ES5

Kb. Trans. Senior-NOVEO szoftver cégek azt mondják, emlékszem, milyen volt, elvitték az utat a munka nélkül a modulok az első próbálkozás, hogy írjon nekik magad, akkor használni mások eredményeit ... De a rendszer az alább felsorolt, tudják, első kézből. Ó, voltak idők!

Ahhoz, hogy egy ötlet a megjelenés ezeket a mintákat, nézzük meg kettő: azonnal hívják funkció (azonnal meghívás funkció kifejezések) és az azonosító modul (feltáró modul).

Azonnal hívott függvény (Azonnal meghívás Funkció Expression vagy életedrõl)

A helyiség a zárójelben teszi funkcionális kifejezést:

Funkcionális kifejezés visszatérési nekünk működött, hogy tudjuk majd hivatkozni rá:

Azonnal hívott funkció lehetővé teszi számunkra, hogy:

  • teljesen körülvenni a kódot életedrõl, így nem kell megérteni, hogyan működik életedrõl kódja;
  • meghatározzák a belső változók életedrõl, így azok nem torlódnak a globális hatókörű (deklarált változók belül életedrõl, belül maradnak a zárt kifejezés).

Ezek azonban nem ad nekünk egy függőségi irányítási mechanizmus.

A minta detektáló modult (feltárva modul)

A minta érzékelő modul hasonló életedrõl, de itt mi hozzá a visszaadott érték egy változó:

Figyeljük meg, hogy nincs szükség a könyökök, hiszen a szó funkciója nem a sor elejére.

Most viszont, hogy az API modul révén változó:

Ehelyett Singleton modul is jár, mint egy konstruktor függvényt:

valamely külső API

A mintaészlelés modul ugyanazokat az előnyöket, mint a életedrõl, de megint nem biztosítja a képességét, hogy kezelje a függőségeket.

formátumok modulok

Modul méret - ez a szintaxis meghatározására használják azt.

Íme néhány a legismertebb és legszélesebb körben alkalmazott:

  • Aszinkron Moduldefiníció (Asynchronous Moduldefiníció vagy AMD);
  • CommonJS;
  • Univerzális modul meghatározása (Universal Moduldefiníció vagy UMD);
  • System.register;
  • ES6 formátum modult.

Nézzük meg mindegyik, így képes felismerni azokat a szintaxis.

Aszinkron Moduldefiníció (AMD)

Az AMD a formátumot használják a böngészők és használják, hogy meghatározzák a modulok funkciójának meghatározása:

méret CommonJS

CommonJS formátumot használják node.js és használja, hogy meghatározza a függőség, és szükség module.exports és modulok:

Univerzális modul meghatározása (UMD)

UMD formátum egyaránt használható a böngésző és Node.js.

System.registerA

System.register méret volt a célja, hogy támogassa ES6 modulok szintaktikai ES5:

Format ES6 modulok

Ez használ egy token export exportálni egy nyilvános modul API:

és a token import importálni a részeket, amelyek a modul export:

Mi lehet még rendelni import alias használva:

vagy töltse le a teljes modul egyszerre:

A formátum az alapértelmezett export:

behozható, például az alábbiak szerint:

Tudod export nemcsak funkciója, hanem mindent, amit akar:

Sajnos, a natív formátum modulok még nem támogatja minden böngésző.

Tudjuk használni a modulokat ES6 méret ma, de ehhez szükséges a fordító, mint Bábel, ami lefordítja a kódot ES5 formátumban, mint például az AMD vagy CommonJS, mielőtt a kód fut a böngésző.

A modulok javascript, formátumok, rakodógépek és összeszerelő modulok 10 percig

Rakadógépek

module loader értelmezi, és betölti a modult, melyek egy bizonyos formátumban.

A betöltő modul indult Játékidő:

  • betölt egy module loader a böngésző;
  • mondani a rakodó, mi a fő alkalmazás fájl futtatásához;
  • modul letölti és értelmezi a fő alkalmazás fájl;
  • module loader letölti a fájlokat, ha szükséges.

Ha megnyitja a lapot „Hálózat” a fejlesztői konzolt a böngészőt, akkor láthatjuk, hogy sok a fájlok már letöltött on-demand module loader.

Íme néhány népszerű letöltők:

  • RequireJS: module loader AMD formátumban;
  • SystemJS: module loader AMD formátumban CommonJS, UMD és System.register formátumban.

gyűjtők modulok

A modulok javascript, formátumok, rakodógépek és összeszerelő modulok 10 percig

Gyűjtő modul helyettesíti a modul rakodó. Ellentétben azonban a rakodó modul kollektor modul elindul a szerelvény:

  • futtatja a gyűjtő modul létrehozása összeszerelése során a csomag fájl (például bundle.js);
  • és töltse be a csomagot a böngészőt.

Ha megnyitja a lapot „Hálózat” a fejlesztői konzol a böngészőt, akkor láthatjuk, hogy csak az egyik fájl betöltése. Így nincs szükség a rakodó modul: az összes kódot, egy csomagban.

Egy pár népszerű összeszerelő:

  • Browserify: kollektor CommonJS modulok;
  • Webpack: kollektor modulok AMD, CommonJS, ES6.

összegezve

Modul - ez pereispolzuemaya része a kód, amely a végrehajtás részleteit és az API nyílt, így könnyen le és használja azt egy másik kódot.

Modul méret - szintaxisa meghatározására használják modulokat. A múltban voltak különböző formátumok: AMD, CommonJS, UMD és System.register natív modulok méret megjelent ES6.

A betöltő modul értelmezi és betölti a modult, melyek egy bizonyos méret, végrehajtási idő (a böngésző). Gyakori - RequireJS és SystemJS.

Gyűjtő modul helyettesíti a rakodó modulokat, és létrehoz egy csomagot, amely tartalmazza az összes kódot a szerelvény. Népszerű példák - Browserify és Webpack.

Nagy nap és programok öröm!