CommonJS - CommonJS
CommonJS был проектом, целью которого было установить соглашения о модуль экосистема для JavaScript вне веб-браузер. Основной причиной его создания было серьезное отсутствие общепринятых форм модулей модуля JavaScript, которые можно было бы повторно использовать в средах, отличных от тех, которые предоставляются обычными веб-браузерами, выполняющими сценарии JavaScript (например, веб-серверы или собственные настольные приложения ).
Спецификация модуля CommonJS широко используется сегодня, в частности, для на стороне сервера Программирование на JavaScript с помощью Node.js.[1] Он также используется при разработке JavaScript на стороне браузера, но код должен быть упакован с транспилятор поскольку браузеры не поддерживают CommonJS.[1] Другая основная используемая спецификация серверных модулей - это Модули ES спецификация (модули ES6).[2] CommonJS можно распознать по использованию требовать()
функция и module.exports
, а модули ES используют импорт
и экспорт
утверждения для аналогичной (хотя и не идентичной) функциональности.
История
Проект был запущен Mozilla инженер Кевин Дангур в январе 2009 года, первоначально названный ServerJS.[3]
То, что я здесь описываю, не является технической проблемой. Люди собираются вместе и принимают решение сделать шаг вперед и вместе начать создавать что-то большее и крутое.
— Кевин Дангур[3]
В августе 2009 года проект был переименован. CommonJS чтобы показать более широкую применимость API.[4] Спецификации создаются и утверждаются в открытом процессе. Спецификация рассматривается только окончательный после того, как он был завершен несколькими реализациями.[5] CommonJS не связан с Ecma International группа TC39 работает над ECMAScript, но некоторые члены TC39 участвуют в проекте.[6]
Характеристики
В перечень технических характеристик входят:[7]
Текущий
- Модули / 1.0 (заменены модулями / 1.1)
- Модули / 1.1
- Модули / 1.1.1
- Пакеты / 1.0
- Система / 1.0
Предложения
Предложения охватывают не только модули. Они намерены определить набор API-интерфейсов, которые полезны как для реализаций JavaScript не в Интернете, так и со стандартизованными именами пакетов для обеспечения взаимодействия в экосистеме. Эта цель иногда пересекается с целью TC39, и такие части, как Promises, действительно вошли в сам ECMAScript.
Часть после косой черты - это версия. Когда предложение является спорным, каждому отдельному предложению (включая последовательные исправления от одного и того же автора) присваивается новая буква. Когда основное направление известно, ему начинают присваиваться числовые версии.
- Двоичный / B, F
- Консоль (портирована из Интернета)
- Кодировки / A, C
- Кодировки / A
- HTTP-клиент / B
- IO / A
- Файловая система / A, A / 0
- Модули / Async / A
- Модули / Асинхронное определение
- Модули / LoaderPlugin
- Модули / Ресурсы
- Модули / SimpleAsynchronous
- Модули / Транспорт / B, C, D, E
- Модули / Обертки
- Модули / оболочки-явные-зависимости
- Пакеты / 1.1
- Пакеты / Асинхронное определение
- Пакеты / Сопоставления / A, B, C, D
- Обещания / B, D
- Модульное тестирование / B, 1.0,1.0.1
Реализации
- Общий узел[8]
- CommonJS Compiler - инструмент командной строки, который делает модули Common JS подходящими для использования в браузере.[9]
- CommonJS для PHP - легкая реализация CommonJS для PHP 5.3+[10]
- CouchDB[11]
- Flusspferd[12]
- GPSEE[13]
- Реактивный ранец
- Платформа Joyent Smart[14]
- JSBuild[15]
- MongoDB[16]
- Нарвал (платформа JavaScript)[17]
- Node.js (частичный; синхронный)[18]
- Настойчиво[19]
- Загрузчик JavaScript PINF[20]
- RingoJS[21]
- SilkJS[22]
- SproutCore[23]
- TeaJS[24]
- Ваканда[25]
- XULJet[26]
- QUnit
Смотрите также
- Определение асинхронного модуля (AMD), другая архитектура модуля JavaScript
- Сравнение серверных JavaScript-решений
- Объектная модель документа (ДОМ), а веб-браузер сторона клиента интерфейс прикладного программирования (API) обычно доступен в JavaScript
- JSGI
Рекомендации
- ^ а б Эрик Эллиотт (26 июня 2014 г.). Программирование приложений JavaScript: надежная веб-архитектура с библиотеками Node, HTML5 и современными JS. "O'Reilly Media, Inc.". С. 87–. ISBN 978-1-4919-5027-2.
- ^ Марио Кашаро; Лучано Маммино (29 июля 2020 г.). Шаблоны проектирования Node.js: проектирование и реализация приложений Node.js производственного уровня с использованием проверенных шаблонов и методов, третье издание. Packt Publishing. п. 62. ISBN 978-1-83921-044-0.
- ^ а б Что нужно серверному JavaScript - Blue Sky On Mars
- ^ CommonJS: стандартная библиотека JavaScript
- ^ ProposalProcess - CommonJS Spec Wiki
- ^ CommonJS: первый год - Голубое небо на Марсе
- ^ «Стандартная библиотека JavaScript». CommonJS. Архивировано 28 мая 2014 года.. Получено 2014-05-28.CS1 maint: неподходящий URL (связь)
- ^ olegp / common-node @ GitHub
- ^ - GitHub
- ^ DrBenton / CommonJSForPHP - GitHub
- ^ Реализации / CouchDB - CommonJS Spec Wiki
- ^ Flusspferd - Платформа CommonJS | Привязки Javascript для C
- ^ Реализации / GPSEE - CommonJS Spec Wiki
- ^ Реализации / Smart - CommonJS Spec Wiki
- ^ Домашняя страница - JSBuild В архиве 2011-01-04 в Wayback Machine
- ^ MongoDB
- ^ Реализации / Narwhal - CommonJS Spec Wiki
- ^ Реализации / node.js - CommonJS Spec Wiki
- ^ Реализации / Настойчивость - CommonJS Spec Wiki
- ^ pinf / loader-js - GitHub
- ^ Реализации / RingoJS - CommonJS Spec Wiki
- ^ "WWW сайт SilkJS". Архивировано из оригинал на 2017-09-12. Получено 2012-10-19.
- ^ Реализации / SproutCore - CommonJS Spec Wiki
- ^ Реализации / TeaJS - CommonJS Spec Wiki
- ^ Ваканда
- ^ xuljet - Расширенный инструментарий XUL JavaScript - Хостинг проектов Google