CommonJS - это проект, целью которого является установление соглашений в экосистеме модулей для JavaScript за пределами веб-браузера . Основной причиной его создания было серьезное отсутствие общепринятых форм модулей модуля JavaScript, которые можно было бы повторно использовать в средах, отличных от тех, которые предоставляются обычными веб-браузерами, выполняющими сценарии JavaScript (например, веб-серверы или собственные настольные приложения ).
Модуль спецификация CommonJS является широко используются в настоящее время , в частности , для серверного программирования JavaScript с Node.js . [1] Он также используется при разработке JavaScript на стороне браузера, но код должен быть упакован с транспилятором, поскольку браузеры не поддерживают CommonJS. [1] Другой основной используемой спецификацией серверных модулей является спецификация модулей ES (модули ES6, также известные как модули ES2015). [2] CommonJS может быть признано использованием require()
функции и module.exports
, в то время как модули ES использовать import
и export
отчеты по аналогичной (хотя и не идентичны) функциональности.
История [ править ]
Проект был запущен инженером 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]
- Флюсспферд [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-решений
- Document Object Model (DOM), интерфейс программирования клиентских приложений (API) веб-браузера, обычно доступный в JavaScript.
- JSGI
Ссылки [ править ]
- ^ a b Эрик Эллиотт (26 июня 2014 г.). Программирование приложений JavaScript: надежная веб-архитектура с библиотеками Node, HTML5 и современными JS . "O'Reilly Media, Inc.". С. 87–. ISBN 978-1-4919-5027-2.
- ^ Марио Casciaro; Лучано Маммино (29 июля 2020 г.). Шаблоны проектирования Node.js: проектирование и реализация приложений Node.js производственного уровня с использованием проверенных шаблонов и методов, третье издание . Packt Publishing. п. 62. ISBN 978-1-83921-044-0.
- ^ a b Что нужно для серверного JavaScript - Blue Sky On Mars
- ^ CommonJS: Стандартная библиотека JavaScript
- ^ ProposalProcess - CommonJS Spec Wiki
- ^ CommonJS: Первый год - Голубое небо на Марсе
- ^ "Стандартная библиотека JavaScript" . CommonJS. Архивировано 28 мая 2014 года . Проверено 28 мая 2014 .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, архивировано 4 января 2011 г. на Wayback Machine
- ^ MongoDB
- ^ Реализации / Narwhal - CommonJS Spec Wiki
- ^ Реализации / node.js - CommonJS Spec Wiki
- ^ Реализации / Настойчивость - CommonJS Spec Wiki
- ^ pinf / loader-js - GitHub
- ^ Реализации / RingoJS - CommonJS Spec Wiki
- ^ "Сайт SilkJS WWW" . Архивировано из оригинала на 2017-09-12 . Проверено 19 октября 2012 .
- ^ Реализации / SproutCore - CommonJS Spec Wiki
- ^ Реализации / TeaJS - CommonJS Spec Wiki
- ^ Ваканда
- ^ xuljet - Расширенный инструментарий XUL JavaScript - Хостинг проектов Google
Внешние ссылки [ править ]
- Официальный веб-сайт
- «Усилия CommonJS ставят JavaScript на путь мирового господства» . Ars Technica . Декабрь 2009 г.