CommonJS

| Wikipediaのcommon.jsなどのJavaScriptについては「Wikipedia:カスタムJS」または「プロジェクト:ウィキ技術部/共通スクリプト」を参照

|

CommonJSとは、サーバーサイドなどのウェブブラウザ環境外におけるJavaScriptの各種仕様を定めることを目標としたプロジェクトである。

## 歴史

[編集]

CommonJSプロジェクトは元々、2009年1月にMozillaのエンジニアKevin DangoorによりServerJSプロジェクトとして立ち上げられた[1]。

「  | 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[1]

2009年8月、プロジェクトはより広い範囲のAPIを対象とすることを示すために、現在のCommonJSへと改名された[2]。仕様の作成と採用はオープンプロセスで進められた。仕様は複数の実装が完了した後、最終的に確定とされた[3]CommonJSはECMAScriptの仕様を定めるEcmaインターナショナルのTC39グループとは直接関係はないが、TC39のメンバーの一部はCommonJSプロジェクトに参加している。[4]。

2013年5月、Node.jsのパッケージマネージャーnpmの作者であるIsaac Z. Schlueterは、CommonJSはNode.jsにとって時代遅れになりつつあり、Node.jsの主要開発者はCommonJSから離れていると語った[5]。

## 仕様

[編集]

CommonJSで定められた仕様としては以下のようなものがある[6] なおModuleとPromiseについては、後に2015年のECMAScript 6で標準規格が定められている。[※ 1]。

### 現行

[編集]

* Modules/1.0 (Modules/1.1で廃止)
* Modules/1.1
* Modules/1.1.1
* Packages/1.0
* Promises/B
* Promises/C
* System/1.0

### 提案

[編集]

* Binary/B
* Binary/F
* Console
* Encodings/A
* Filesystem/A
* Filesystem/A/0
* Modules/Async/A
* Modules/Transport/B
* Packages/1.1
* Packages/Mappings
* Unit Testing/1.0

## 実装

[編集]

* Akshell[7]
* Common Node[8]
* CommonJS Compiler - ブラウザ環境でCommon JSモジュールを使うためのコマンドラインツール[9]
* CommonJS for PHP - PHP 5.3以降用の軽量CommonJS実装[10]
* CouchDB[11]
* Flusspferd[12]
* GPSEE[13]
* Jetpack（英語版）
* Joyent Smart Platform[14]
* JSBuild[15]
* MongoDB[16]
* Narwhal[17]
* Node.js[18]
* Persevere[19]
* PINF JavaScript Loader[20]
* RingoJS[21]
* SilkJS[22]
* SproutCore（英語版）[23]
* TeaJS[24]
* Wakanda（英語版）[25]
* XULJet（英語版）[26]

## 注釈

[編集]

1. ^ CommonJSの仕様に近いが、CommonJSがそのまま採用されたわけではない。

## 出典

[編集]

1. ^ a b What Server Side JavaScript needs - Blue Sky On Mars
2. ^ CommonJS: JavaScript Standard Library
3. ^ ProposalProcess - CommonJS Spec Wiki
4. ^ CommonJS: the First Year - Blue Sky On Mars
5. ^ “Forget CommonJS. It's dead. **We are server side JavaScript.**”. GitHub (2013年3月25日). 2016年6月20日閲覧。
6. ^ “JavaScript Standard Library”. CommonJS. 2012年9月21日閲覧。
7. ^ Server-side JavaScript development and hosting - Akshell
8. ^ olegp/common-node @ GitHub
9. ^ \- GitHub
10. ^ DrBenton/CommonJSForPHP - GitHub
11. ^ Implementations/CouchDB - CommonJS Spec Wiki
12. ^ Flusspferd - CommonJS platform | Javascript bindings for C
13. ^ Implementations/GPSEE - CommonJS Spec Wiki
14. ^ Implementations/Smart - CommonJS Spec Wiki
15. ^ Homepage - JSBuild
16. ^ MongoDB
17. ^ Implementations/Narwhal - CommonJS Spec Wiki
18. ^ Implementations/node.js - CommonJS Spec Wiki
19. ^ Implementations/Persevere - CommonJS Spec Wiki
20. ^ pinf/loader-js - GitHub
21. ^ Implementations/RingoJS - CommonJS Spec Wiki
22. ^ SilkJS WWW Site
23. ^ Implementations/SproutCore - CommonJS Spec Wiki
24. ^ Implementations/TeaJS - CommonJS Spec Wiki
25. ^ Wakanda
26. ^ xuljet - XUL JavaScript Enhanced Toolkit - Google Project Hosting

## 関連項目

[編集]

* Document Object Model

## 外部リンク

[編集]

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

* 表
* 話
* 編
* 歴

JavaScript

概念|

* 文法（英語版）
* JavaScriptライブラリ
* 控えめなJavaScript

エンジン|

* Carakan/Futhark/Linear B
* Chakra
* JavaScriptCore
* JScript
* KJS
* Narcissus
* Nashorn
* Rhino
* SpiderMonkey
* V8

コンパイラ|

* AtScript
* Babel
* ClojureScript
* CoffeeScript
* Emscripten
* Google Closure Compiler
* Google Web Toolkit
* Haxe
* JSX
* Kotlin
* Nim
* PureScript
* TypeScript

デバッガ|

* Firebug
* Google Chrome Developer Tools
* Internet Explorer Developer Tools
* Opera Dragonfly
* Visual Studio
* Visual Studio Express
* Visual Studio Code
* Web Inspector

エディタ|

* Atom
* Brackets
* Visual Studio
* Visual Studio Express
* Light Table
* Visual Studio Code
* WebStorm

サーバーサイド|

* Active Server Pages
* Bun
* CommonJS
* Deno
* Node.js
* Vert.x（英語版）
* Wakanda（英語版）

フレームワーク

・ライブラリ|

* Angular/AngularJS
* Backbone.js
* Dojo
* Express.js
* Ext JS
* Google Web Toolkit
* jQuery
* Mobile
* KaTeX
* MathJax
* MochiKit
* MooTools
* Prototype
* React
* Vue.js
* YUI ライブラリ
* SolidJS
* Svelte
* Hono
* ElysiaJS
* Qwik

ユニットテスト|

* Jasmine（英語版）
* Jest
* Mocha（英語版）
* QUnit
* ユニットテスト・フレームワーク一覧

Docジェネレータ|

* JSDoc

コード解析|

* ESLint
* JSHint
* JSLint

パッケージ管理|

* npm
* NuGet

アプリケーション

バンドラー|

* Webpack
* Vite
* esbuild

関連技術|

* Ajax
* CSS
* DHTML
* DOM
* HTML
* JSON
* JSONP
* WebAssembly
* asm.js

人物|

* ジョン・レシグ
* ダグラス・クロックフォード（英語版）
* ブレンダン・アイク
* ライアン・ダール

* カテゴリ
* コモンズ
* ウィキブックス
* Portal:コンピュータ

* 表
* 話
* 編
* 歴

ECMAScript

方言|

* ActionScript
* DMDScript
* JavaScript
* asm.js
* JScript
* TypeScript
* WMLScript

エンジン（英語版）|

* Carakan/Futhark/Linear B
* Chakra
* JavaScriptCore
* JScript
* KJS
* Narcissus
* Rhino
* SpiderMonkey
* V8

フレームワーク
・ライブラリ|

| クライアントサイド|

* Dojo
* Ext JS
* Google Web Toolkit
* jQuery
* MochiKit
* MooTools
* Prototype
* YUI Library（英語版）

|

サーバーサイド|

* Jaxer
* Deno
* Node.js

ライブラリ|

* Backbone.js
* Underscore.js

人物|

* ブレンダン・アイク
* ダグラス・クロックフォード（英語版）
* ジョン・レシグ
* スコット・アイザックス（英語版）
* ライアン・ダール

その他|

* AMD（英語版）
* CommonJS
* DHTML
* E4X
* Ecmaインターナショナル
* JSDoc
* JSGI（英語版）
* JSHint
* JSLint
* JSON
* JSSS（英語版）

この項目は、ソフトウェアに関連した書きかけの項目です。この項目を加筆・訂正などしてくださる協力者を求めています（PJ:コンピュータ/P:コンピュータ）。

|

* 表示
* 編集