コモンJS

CommonJS は、 Web ブラウザー外部( Web サーバーやネイティブ デスクトップ アプリケーションなど) のJavaScriptモジュールエコシステムを標準化するプロジェクトです。

CommonJS のモジュールの動作仕様は、現在では Node.js を使ったサーバーサイド JavaScript で広く使われています。[ 1 ]また、ブラウザサイド JavaScript にも使われていますが、ブラウザは CommonJS をサポートしていないため、そのコードはトランスパイラでパッケージ化する必要があります。 [ 1 ]その他の主要なモジュール仕様は、ECMAScript (ES) モジュール仕様 (ES6 モジュール、別名 ES2015 モジュール) です。[ 2 ]require() CommonJS は関数とを使用することで認識できますがmodule.exports、ES モジュールでは 同様の (ただし同一ではない) 機能のために importとステートメントを使用します。export

歴史

このプロジェクトは2009年1月にMozillaのエンジニアであるKevin Dangoorによって開始され、当初はServerJSと名付けられました。[ 3 ]

ここで私が説明しているのは技術的な問題ではありません。人々が集まり、一歩踏み出し、より大きく、よりクールなものを共に作り上げていくという決断です。

— ケビン・ダンゴール[ 3 ]

2009年8月、 APIの適用範囲の広さを示すため、プロジェクト名はCommonJSに変更されました。[ 4 ]仕様はオープンなプロセスで作成・承認されます。仕様は複数の実装を経て完成した後に初めて最終版とみなされます。 [ 5 ] CommonJSはECMAScriptに取り組むEcma InternationalグループTC39とは提携していませんが、TC39のメンバーの一部がプロジェクトに参加しています。[ 6 ]

仕様

仕様リストには以下が含まれる: [ 7 ]

現在

  • Modules/1.0 (Modules/1.1 に置き換えられました)
  • モジュール/1.1
  • モジュール/1.1.1
  • パッケージ/1.0
  • システム/1.0

提案

提案はモジュールだけにとどまりません。Web以外のJavaScript実装にも有用なAPIセットを定義し、エコシステム内での相互運用性を確保するためにパッケージ名を標準化することを意図しています。この目標はTC39の目標と重なる部分もあり、Promisesなどの要素は実際にECMAScript自体にも取り入れられています。

スラッシュの後の部分はバージョンです。提案が競合している場合、個々の提案(同じ著者による連続した改訂版を含む)に新しい文字が割り当てられます。主要な方向性が判明すると、数値バージョンが割り当てられ始めます。

  • バイナリ/B、F
  • コンソール(Web から移植)
  • エンコーディング/A、C
  • エンコーディング/A
  • HTTPクライアント/B
  • IO/A
  • ファイルシステム/A、A/0
  • モジュール/非同期/A
  • モジュール/非同期定義
  • モジュール/ローダープラグイン
  • モジュール/リソース
  • モジュール/シンプル非同期
  • モジュール/トランスポート/B、C、D、E
  • モジュール/ラッピング
  • モジュール/ラッピング-明示的な依存関係
  • パッケージ/1.1
  • パッケージ/非同期定義
  • パッケージ/マッピング/A、B、C、D
  • 約束/B,D
  • ユニットテスト/B、1.0、1.0.1

実装

参照

参考文献

  1. ^ a bエリック・エリオット (2014年6月26日). 『JavaScriptアプリケーションのプログラミング:Node、HTML5、そして最新のJSライブラリによる堅牢なWebアーキテクチャ』 O'Reilly Media, Inc. pp. 87–. ISBN 978-1-4919-5027-2
  2. ^ Mario Casciaro、Luciano Mammino (2020年7月29日). Node.jsデザインパターン:実証済みのパターンとテクニックを用いて、製品グレードのNode.jsアプリケーションを設計・実装する、第3版. Packt Publishing. p. 62. ISBN 978-1-83921-044-0
  3. ^ a b「サーバーサイドJavaScriptに必要なもの」 . www.blueskyonmars.com . 2021年8月5日閲覧。
  4. ^ 「CommonJS: JavaScript 標準ライブラリ」www.commonjs.org . 2017年11月13日時点のオリジナルよりアーカイブ2021年8月5日閲覧。
  5. ^ "ProposalProcess - CommonJS Spec Wiki" . wiki.commonjs.org . 2021年8月5日閲覧
  6. ^ 「CommonJS:最初の1年」 . www.blueskyonmars.com . 2021年8月5日閲覧。
  7. ^ 「JavaScript標準ライブラリ」 . CommonJS. 2014年5月28日時点のオリジナルよりアーカイブ2014年5月28日閲覧。
  8. ^ "olegp/common-node @ GitHub" . olegp.github.io . 2021年8月5日閲覧
  9. ^ 「CommonJSコンパイラ - Common JSモジュールをブラウザ内での使用に適したものにします」 . dsheiko.github.io . 2021年8月5日閲覧。
  10. ^ 「GitHub - DrBenton/CommonJSForPHP: PHP 5.3+向けのシンプルなCommonJS仕様の実装」 GitHub . 2021年8月5日閲覧
  11. ^ 「Implementations/CouchDB - CommonJS Spec Wiki」 . wiki.commonjs.org . 2021年8月5日閲覧
  12. ^ 「Flusspferd - CommonJS プラットフォーム | C言語用Javascriptバインディング」2013年1月28日時点のオリジナルよりアーカイブ2017年9月19日閲覧。
  13. ^ 「Implementations/GPSEE - CommonJS Spec Wiki」 . wiki.commonjs.org . 2021年8月5日閲覧
  14. ^ 「Implementations/Smart - CommonJS Spec Wiki」 . wiki.commonjs.org . 2021年8月5日閲覧。
  15. ^ “ホームページ - JSBuild” . 2011年1月4日時点のオリジナルよりアーカイブ
  16. ^ 「モダンアプリ向けの最も人気のあるデータベース」MongoDB2021年8月5日閲覧
  17. ^ 「Implementations/Narwhal - CommonJS Spec Wiki」 . wiki.commonjs.org . 2021年8月5日閲覧
  18. ^ 「Implementations/node.js - CommonJS Spec Wiki」 . wiki.commonjs.org . 2021年8月5日閲覧
  19. ^ 「Implementations/Persevere - CommonJS Spec Wiki」 . wiki.commonjs.org . 2021年8月5日閲覧
  20. ^ 「GitHub - pinf/loader-js: 早期停滞の探索」 . GitHub . 2021年7月30日. 2021年8月5日閲覧
  21. ^ 「Distributive-Network/PythonMonkey: Python VMに埋め込まれたMozilla SpiderMonkey JavaScriptエンジン。Pythonエンジンを使用してJSホスト環境を提供します」。GitHub 。2023年7月7日2023年7月10日閲覧
  22. ^ 「Implementations/RingoJS - CommonJS Spec Wiki」 . wiki.commonjs.org . 2021年8月5日閲覧
  23. ^ 「SilkJS WWWサイト」 。 2017年9月12日時点のオリジナルよりアーカイブ2012年10月19日閲覧。
  24. ^ 「Implementations/SproutCore - CommonJS Spec Wiki」 . wiki.commonjs.org . 2021年8月5日閲覧
  25. ^ 「Implementations/TeaJS - CommonJS Spec Wiki」 . wiki.commonjs.org . 2021年8月5日閲覧
  26. ^ SAS、Wakanda。「Wakanda FullStack JavaScript プラットフォーム」。Wakanda FullStack JavaScript プラットフォーム2021年8月5日閲覧。
  27. ^ 「Google Code アーカイブ - Google Code プロジェクト ホスティング用の長期ストレージ」 . code.google.com . 2021年8月5日閲覧