CommonJS

CommonJSとは



CommonJSは、ウェブブラウザ環境外、主にサーバーサイドにおけるJavaScriptの各種仕様を標準化することを目的としたプロジェクトです。JavaScriptをブラウザだけでなく、サーバーサイドやデスクトップアプリケーションなど、より広範な環境で使用できるようにすることを目指しました。

歴史



CommonJSプロジェクトは、元々2009年1月にMozillaのエンジニアであるKevin DangoorによってServerJSプロジェクトとして立ち上げられました。当初はサーバーサイドのJavaScript環境に特化した仕様を策定することを目指していましたが、より広範なAPIを対象とするようにプロジェクトのスコープが拡大しました。

2009年8月、プロジェクトは対象範囲の拡大を反映し、現在のCommonJSへと改名されました。仕様の策定と採用はオープンなプロセスで進められ、複数の実装が完了した後に正式な仕様として確定されるという手順が取られました。

CommonJSは、ECMAScriptの仕様を定めるEcma InternationalのTC39グループとは直接的な関係はありません。しかし、TC39のメンバーの一部はCommonJSプロジェクトにも参加しており、相互に影響を与えながら発展してきました。

Node.jsとの関係



CommonJSの仕様は、特にNode.jsの初期の開発において大きな影響を与えました。Node.jsはCommonJSのModule仕様を採用し、モジュールシステムの基盤として利用しました。これにより、Node.jsではJavaScriptのコードをモジュールとして分割し、再利用することが容易になりました。

しかし、2013年5月には、Node.jsのパッケージマネージャーnpmの作者であるIsaac Z. Schlueterが、CommonJSはNode.jsにとって時代遅れになりつつあり、Node.jsの主要開発者はCommonJSから離れていると発言しました。これは、Node.jsがCommonJSの仕様に縛られず、独自の進化を遂げようとしていることを示唆するものでした。

仕様



CommonJSで定められた仕様には、以下のようなものがあります。

Modules: JavaScriptのモジュールシステムに関する仕様。`require()`関数によるモジュールの読み込みや、`exports`オブジェクトによるモジュールの公開を定めています。この仕様は、後にECMAScript 6(ES2015)で標準化されました。
Promises: 非同期処理を扱うためのPromiseに関する仕様。これも後にECMAScript 6で標準化されています。

CommonJSは、JavaScriptのエコシステムに大きな影響を与えたプロジェクトであり、その仕様はNode.jsをはじめとする様々なJavaScript環境で利用されています。ECMAScriptによる標準化が進んだことで、CommonJSの役割は変化しつつありますが、その貢献はJavaScriptの歴史において重要な位置を占めています。

関連項目



Document Object Model (DOM)

外部リンク



CommonJS: JavaScript Standard Library 公式ウェブサイト(英語)
* SlideShare - CommonJSの話

もう一度検索

【記事の利用について】

タイトルと記事文章は、記事のあるページにリンクを張っていただければ、無料で利用できます。
※画像は、利用できませんのでご注意ください。

【リンクついて】

リンクフリーです。