CommonJS - CommonJS - Wikipedia
CommonJS byl projekt s cílem vytvořit konvence o modul ekosystém pro JavaScript mimo webový prohlížeč. Primárním důvodem pro jeho vytvoření byl zásadní nedostatek běžně přijímaných forem jednotek modulu JavaScript, které by bylo možné znovu použít v prostředích odlišných od prostředí poskytovaného běžnými webovými prohlížeči, které používají skripty JavaScriptu (např. webové servery nebo nativní desktopové aplikace ).
Specifikace modulu CommonJS je dnes široce používána, zejména pro na straně serveru Programování JavaScriptu s Node.js.[1] Používá se také při vývoji JavaScriptu na straně prohlížeče, ale kód musí být zabalen s transportér protože prohlížeče nepodporují CommonJS.[1] Další hlavní používanou specifikací modulu na straně serveru je ES moduly specifikace (moduly ES6).[2] CommonJS lze rozpoznat podle použití vyžadovat()
funkce a modul. exportuje
, zatímco moduly ES používají import
a vývozní
příkazy pro podobnou (i když ne identickou) funkčnost.
Dějiny
Projekt zahájil Mozilla inženýr Kevin Dangoor v lednu 2009 a původně jmenován ServerJS.[3]
To, co zde popisuji, není technický problém. Jde o to, aby se lidé spojili a rozhodli se pokročit a začít společně budovat něco většího a chladnějšího.
— Kevin Dangoor[3]
V srpnu 2009 byl projekt přejmenován CommonJS ukázat širší použitelnost API.[4] Specifikace jsou vytvářeny a schvalovány v otevřeném procesu. Specifikace je pouze brána v úvahu finále po dokončení několika implementacemi.[5] CommonJS není spojen s Ecma International skupina TC39 pracuje na ECMAScript, ale projektu se účastní někteří členové TC39.[6]
Specifikace
Seznam specifikací zahrnuje:[7]
Aktuální
- Moduly / 1.0 (Nahrazeno Moduly / 1.1)
- Moduly / 1.1
- Moduly / 1.1.1
- Balíčky / 1.0
- Systém / 1.0
Návrhy
Návrhy pokrývají mnohem více než moduly. Mají v úmyslu definovat sadu API, která jsou užitečná jak pro implementace JavaScriptu mimo web, tak se standardizovanými názvy balíčků, které zajistí interoperabilitu v rámci ekosystému. Tento cíl se někdy překrývá s cílem TC39 a části jako Promises se skutečně dostaly do samotného ECMAScript.
Část za lomítkem je verze. Pokud je návrh v rozporu, je každému jednotlivému návrhu (včetně postupných revizí od stejného autora) přiděleno nové písmeno. Když je známý hlavní směr, začne mu být přiřazována numerická verze.
- Binární / B, F
- Konzola (portovaná z webu)
- Kódování / A, C
- Kódování / A
- Klient HTTP / B
- IO / A
- Souborový systém / A, A / 0
- Moduly / Async / A
- Moduly / AsynchronousDefinition
- Moduly / LoaderPlugin
- Moduly / zdroje
- Moduly / SimpleAsynchronous
- Moduly / Transport / B, C, D, E
- Moduly / obaly
- Moduly / Wrappings-Explicit-Dependencies
- Balíčky / 1.1
- Packages / AsynchronousDefinition
- Balíčky / mapování / A, B, C, D
- Sliby / B, D
- Testování jednotek / B, 1,0,1.0.1
Implementace
- Společný uzel[8]
- CommonJS Compiler - nástroj příkazového řádku, díky kterému jsou moduly Common JS vhodné pro použití v prohlížeči[9]
- CommonJS pro PHP - lehká implementace CommonJS pro PHP 5.3+[10]
- CouchDB[11]
- Flusspferd[12]
- GPSEE[13]
- Raketový batoh
- Inteligentní platforma Joyent[14]
- JSBuild[15]
- MongoDB[16]
- Narwhal (platforma JavaScript)[17]
- Node.js (částečné; synchronní)[18]
- Vytrvat[19]
- Zavaděč JavaScript PINF[20]
- RingoJS[21]
- SilkJS[22]
- SproutCore[23]
- TeaJS[24]
- Wakanda[25]
- XULJet[26]
- QUIT
Viz také
- Definice asynchronního modulu (AMD), další architektura modulu JavaScript
- Porovnání řešení JavaScriptu na straně serveru
- Model objektu dokumentu (DOM), a webový prohlížeč na straně klienta aplikační programovací rozhraní (API) běžně dostupné v JavaScriptu
- JSGI
Reference
- ^ A b Eric Elliott (26. června 2014). Programování aplikací v jazyce JavaScript: Robustní webová architektura s uzly, HTML5 a moderní knihovny JS. „O'Reilly Media, Inc.“. str. 87–. ISBN 978-1-4919-5027-2.
- ^ Mario Casciaro; Luciano Mammino (29. července 2020). Node.js Design Patterns: Navrhujte a implementujte aplikace Node.js na úrovni výroby pomocí osvědčených vzorů a technik, 3. vydání. Packt Publishing. p. 62. ISBN 978-1-83921-044-0.
- ^ A b Co potřebuje JavaScript na straně serveru - Blue Sky On Mars
- ^ CommonJS: Standardní knihovna JavaScriptu
- ^ ProposalProcess - CommonJS Spec Wiki
- ^ CommonJS: První rok - modrá obloha na Marsu
- ^ "Standardní knihovna JavaScriptu". CommonJS. Archivovány od originálu na 2014-05-28. Citováno 2014-05-28.CS1 maint: unfit url (odkaz)
- ^ olegp / common-node @ GitHub
- ^ - GitHub
- ^ DrBenton / CommonJSForPHP - GitHub
- ^ Implementace / CouchDB - CommonJS Spec Wiki
- ^ Flusspferd - platforma CommonJS | Javascriptové vazby pro C.
- ^ Implementace / GPSEE - CommonJS Spec Wiki
- ^ Implementace / Inteligentní - CommonJS Spec Wiki
- ^ Domovská stránka - JSBuild Archivováno 04.01.2011 na Wayback Machine
- ^ MongoDB
- ^ Implementace / Narwhal - CommonJS Spec Wiki
- ^ Implementace / node.js - CommonJS Spec Wiki
- ^ Implementace / Vytrvalost - CommonJS Spec Wiki
- ^ pinf / loader-js - GitHub
- ^ Implementace / RingoJS - CommonJS Spec Wiki
- ^ „WWW stránka SilkJS“. Archivovány od originál dne 12. 9. 2017. Citováno 2012-10-19.
- ^ Implementace / SproutCore - CommonJS Spec Wiki
- ^ Implementace / TeaJS - CommonJS Spec Wiki
- ^ Wakanda
- ^ xuljet - XUL JavaScript Enhanced Toolkit - Google Project Hosting