La especificación de CommonJS sobre cómo deberían funcionar los módulos se usa ampliamente hoy en día para JavaScript del lado del servidor con Node.js. [1] También se usa para JavaScript del lado del navegador, pero ese código debe empaquetarse con un transpilador ya que los navegadores no admiten CommonJS. [1] La otra especificación de módulo importante en uso es la especificación de módulos ECMAScript (ES) (módulos ES6 también conocidos como módulos ES2015). [2] CommonJS se puede reconocer por el uso de la require()función y module.exports, mientras que los módulos ES usan declaraciones importy exportpara una funcionalidad similar (aunque no idéntica).
Historia
El proyecto fue iniciado por el ingeniero de Mozilla Kevin Dangoor en enero de 2009 e inicialmente se llamó ServerJS . [3]
Lo que estoy describiendo aquí no es un problema técnico. Es una cuestión de que la gente se reúna y tome la decisión de dar un paso adelante y empezar a construir juntos algo más grande y genial.
— Kevin Dangoor [3]
En agosto de 2009, el proyecto cambió su nombre a CommonJS para mostrar la aplicabilidad más amplia de las API . [4] Las especificaciones se crean y aprueban en un proceso abierto. Una especificación solo se considera final después de que haya sido terminada por múltiples implementaciones. [5] CommonJS no está afiliado al grupo TC39 de Ecma International que trabaja en ECMAScript , pero algunos miembros de TC39 participan en el proyecto. [6]
Presupuesto
La lista de especificaciones incluye: [7]
Actual
Módulos/1.0 (reemplazado por Módulos/1.1)
Módulos/1.1
Módulos/1.1.1
Paquetes/1.0
Sistema/1.0
Propuestas
Las propuestas abarcan mucho más que módulos. Pretenden definir un conjunto de API que sean útiles tanto para implementaciones de JavaScript no web, con nombres de paquetes estandarizados para proporcionar interoperabilidad dentro del ecosistema. Este objetivo a veces se superpone con el de TC39, y partes como Promises se han incorporado al propio ECMAScript.
La parte que sigue a la barra es la versión. Cuando una propuesta está en disputa, a cada propuesta individual (incluidas las revisiones secuenciales del mismo autor) se le asigna una nueva letra. Cuando se conoce la dirección principal, se le empiezan a asignar versiones numéricas.
^ de Eric Elliott (26 de junio de 2014). Programación de aplicaciones JavaScript: arquitectura web robusta con Node, HTML5 y bibliotecas JS modernas. "O'Reilly Media, Inc.", pp. 87–. ISBN978-1-4919-5027-2.
^ Mario Casciaro; Luciano Mammino (29 de julio de 2020). Patrones de diseño de Node.js: Diseñe e implemente aplicaciones Node.js de nivel de producción utilizando patrones y técnicas comprobadas, 3.ª edición. Packt Publishing. pág. 62. ISBN978-1-83921-044-0.
^ ab "Qué necesita JavaScript del lado del servidor ·". www.blueskyonmars.com . Consultado el 5 de agosto de 2021 .
^ "CommonJS: Biblioteca estándar de JavaScript". www.commonjs.org . Archivado desde el original el 13 de noviembre de 2017 . Consultado el 5 de agosto de 2021 .
^ "ProposalProcess - Wiki de especificaciones de CommonJS". wiki.commonjs.org . Consultado el 5 de agosto de 2021 .
^ "CommonJS: el primer año ·". www.blueskyonmars.com . Consultado el 5 de agosto de 2021 .
^ "Biblioteca estándar de JavaScript". CommonJS. Archivado desde el original el 28 de mayo de 2014. Consultado el 28 de mayo de 2014 .{{cite web}}: CS1 maint: URL no apta ( enlace )
^ "olegp/common-node @ GitHub". olegp.github.io . Consultado el 5 de agosto de 2021 .
^ "Compilador CommonJS: hace que sus módulos Common JS sean adecuados para su uso en el navegador". dsheiko.github.io . Consultado el 5 de agosto de 2021 .
^ "GitHub - DrBenton/CommonJSForPHP: Una implementación simple de especificaciones CommonJS para PHP 5.3+". GitHub . Consultado el 5 de agosto de 2021 .
^ "Implementaciones/CouchDB - Wiki de especificaciones de CommonJS". wiki.commonjs.org . Consultado el 5 de agosto de 2021 .
^ "Flusspferd - Plataforma CommonJS | Enlaces de Javascript para C". Archivado desde el original el 28 de enero de 2013. Consultado el 19 de septiembre de 2017 .
^ "Implementaciones/GPSEE - Wiki de especificaciones de CommonJS". wiki.commonjs.org . Consultado el 5 de agosto de 2021 .
^ "Implementaciones/Smart - Wiki de especificaciones de CommonJS". wiki.commonjs.org . Consultado el 5 de agosto de 2021 .
^ "Página de inicio - JSBuild". Archivado desde el original el 4 de enero de 2011.
^ "La base de datos más popular para aplicaciones modernas". MongoDB . Consultado el 5 de agosto de 2021 .
^ "Implementaciones/Narwhal - Wiki de especificaciones de CommonJS". wiki.commonjs.org . Consultado el 5 de agosto de 2021 .
^ "Implementaciones/node.js - Wiki de especificaciones de CommonJS". wiki.commonjs.org . Consultado el 5 de agosto de 2021 .
^ "Implementaciones/Persevere - Wiki de especificaciones de CommonJS". wiki.commonjs.org . Consultado el 5 de agosto de 2021 .
^ "GitHub - pinf/loader-js: EXPLORACIÓN ESTANCADA TEMPRANA". GitHub . 30 de julio de 2021 . Consultado el 5 de agosto de 2021 .
^ "Distributive-Network/PythonMonkey: un motor de JavaScript SpiderMonkey de Mozilla integrado en la máquina virtual Python, que utiliza el motor Python para proporcionar el entorno de host JS". GitHub . 2023-07-07 . Consultado el 2023-07-10 .
^ "Implementaciones/RingoJS - Wiki de especificaciones de CommonJS". wiki.commonjs.org . Consultado el 5 de agosto de 2021 .
^ "Sitio Web SilkJS". Archivado desde el original el 12 de septiembre de 2017. Consultado el 19 de octubre de 2012 .
^ "Implementaciones/SproutCore - Wiki de especificaciones de CommonJS". wiki.commonjs.org . Consultado el 5 de agosto de 2021 .
^ "Implementaciones/TeaJS - Wiki de especificaciones de CommonJS". wiki.commonjs.org . Consultado el 5 de agosto de 2021 .
^ SAS, Wakanda. "Plataforma JavaScript FullStack de Wakanda". Plataforma JavaScript FullStack de Wakanda . Consultado el 5 de agosto de 2021 .
^ "Archivo de código de Google: almacenamiento a largo plazo para el alojamiento de proyectos de código de Google". code.google.com . Consultado el 5 de agosto de 2021 .
Enlaces externos
Sitio web oficial
"El esfuerzo de CommonJS coloca a JavaScript en el camino de la dominación mundial". Ars Technica . Diciembre de 2009.