Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

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

Ссылки [ править ]

  1. ^ a b Эрик Эллиотт (26 июня 2014 г.). Программирование приложений JavaScript: надежная веб-архитектура с библиотеками Node, HTML5 и современными JS . "O'Reilly Media, Inc.". С. 87–. ISBN 978-1-4919-5027-2.
  2. ^ Марио Casciaro; Лучано Маммино (29 июля 2020 г.). Шаблоны проектирования Node.js: проектирование и реализация приложений Node.js производственного уровня с использованием проверенных шаблонов и методов, третье издание . Packt Publishing. п. 62. ISBN 978-1-83921-044-0.
  3. ^ a b Что нужно для серверного JavaScript - Blue Sky On Mars
  4. ^ CommonJS: Стандартная библиотека JavaScript
  5. ^ ProposalProcess - CommonJS Spec Wiki
  6. ^ CommonJS: Первый год - Голубое небо на Марсе
  7. ^ "Стандартная библиотека JavaScript" . CommonJS. Архивировано 28 мая 2014 года . Проверено 28 мая 2014 .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, архивировано 4 января 2011 г. на 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. ^ "Сайт SilkJS WWW" . Архивировано из оригинала на 2017-09-12 . Проверено 19 октября 2012 .
  23. ^ Реализации / SproutCore - CommonJS Spec Wiki
  24. ^ Реализации / TeaJS - CommonJS Spec Wiki
  25. ^ Ваканда
  26. ^ xuljet - Расширенный инструментарий XUL JavaScript - Хостинг проектов Google

Внешние ссылки [ править ]

  • Официальный веб-сайт
  • «Усилия CommonJS ставят JavaScript на путь мирового господства» . Ars Technica . Декабрь 2009 г.