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

Реализации

Смотрите также

Рекомендации

  1. ^ а б Эрик Эллиотт (26 июня 2014 г.). Программирование приложений JavaScript: надежная веб-архитектура с библиотеками Node, HTML5 и современными JS. "O'Reilly Media, Inc.". С. 87–. ISBN  978-1-4919-5027-2.
  2. ^ Марио Кашаро; Лучано Маммино (29 июля 2020 г.). Шаблоны проектирования Node.js: проектирование и реализация приложений Node.js производственного уровня с использованием проверенных шаблонов и методов, третье издание. Packt Publishing. п. 62. ISBN  978-1-83921-044-0.
  3. ^ а б Что нужно серверному JavaScript - Blue Sky On Mars
  4. ^ CommonJS: стандартная библиотека JavaScript
  5. ^ ProposalProcess - CommonJS Spec Wiki
  6. ^ CommonJS: первый год - Голубое небо на Марсе
  7. ^ «Стандартная библиотека JavaScript». CommonJS. Архивировано 28 мая 2014 года.. Получено 2014-05-28.CS1 maint: неподходящий URL (связь)
  8. ^ olegp / common-node @ GitHub
  9. ^ - GitHub
  10. ^ DrBenton / CommonJSForPHP - GitHub
  11. ^ Реализации / CouchDB - CommonJS Spec Wiki
  12. ^ Flusspferd - Платформа CommonJS | Привязки Javascript для C
  13. ^ Реализации / GPSEE - CommonJS Spec Wiki
  14. ^ Реализации / Smart - CommonJS Spec Wiki
  15. ^ Домашняя страница - JSBuild В архиве 2011-01-04 в Wayback Machine
  16. ^ MongoDB
  17. ^ Реализации / Narwhal - CommonJS Spec Wiki
  18. ^ Реализации / node.js - CommonJS Spec Wiki
  19. ^ Реализации / Настойчивость - CommonJS Spec Wiki
  20. ^ pinf / loader-js - GitHub
  21. ^ Реализации / RingoJS - CommonJS Spec Wiki
  22. ^ "WWW сайт SilkJS". Архивировано из оригинал на 2017-09-12. Получено 2012-10-19.
  23. ^ Реализации / SproutCore - CommonJS Spec Wiki
  24. ^ Реализации / TeaJS - CommonJS Spec Wiki
  25. ^ Ваканда
  26. ^ xuljet - Расширенный инструментарий XUL JavaScript - Хостинг проектов Google

внешняя ссылка