CommonJSとは、サーバーサイドなどのウェブブラウザ環境外におけるJavaScriptの各種仕様を定めることを目標としたプロジェクトである。
CommonJSプロジェクトは元々、2009年1月にMozillaのエンジニアKevin DangoorによりServerJSプロジェクトとして立ち上げられた。
| What I’m describing here is not a technical problem. It’s a matter of people getting together and making a decision to step forward and start building up something bigger and cooler together. | ||
—Kevin Dangoor | ||
2009年8月、プロジェクトはより広い範囲のAPIを対象とすることを示すために、現在のCommonJSへと改名された。仕様の作成と採用はオープンプロセスで進められた。仕様は複数の実装が完了した後、最終的に確定とされたCommonJSはECMAScriptの仕様を定めるEcmaインターナショナルのTC39グループとは直接関係はないが、TC39のメンバーの一部はCommonJSプロジェクトに参加している。。
2013年5月、Node.jsのパッケージマネージャーnpmの作者であるIsaac Z. Schlueterは、CommonJSはNode.jsにとって時代遅れになりつつあり、Node.jsの主要開発者はCommonJSから離れていると語った。
CommonJSで定められた仕様としては以下のようなものがある なおModuleとPromiseについては、後に2015年のECMAScript 6で標準規格が定められている。。