CommonJS is a project to standardize the
module ecosystem for
JavaScript
JavaScript (), often abbreviated as JS, is a programming language and core technology of the World Wide Web, alongside HTML and CSS. Ninety-nine percent of websites use JavaScript on the client side for webpage behavior.
Web browsers have ...
outside of
web browsers
A web browser, often shortened to browser, is an application for accessing websites. When a user requests a web page from a particular website, the browser retrieves its files from a web server and then displays the page on the user's scree ...
(e.g. on
web servers or native desktop applications).
CommonJS's specification of how modules should work is widely used today for server-side JavaScript with Node.js.
It is also used for browser-side JavaScript, but that code must be packaged with a
transpiler since browsers don't support CommonJS.
The other major module specification in use is the
ECMAScript
ECMAScript (; ES) is a standard for scripting languages, including JavaScript, JScript, and ActionScript. It is best known as a JavaScript standard intended to ensure the interoperability of web pages across different web browsers. It is stan ...
(ES) modules specification (ES6 modules aka ES2015 modules).
CommonJS can be recognized by the use of the
require()
function and
module.exports
, while ES modules use
import
and
export
statements for similar (though not identical) functionality.
History
The project was started by
Mozilla
Mozilla is a free software community founded in 1998 by members of Netscape. The Mozilla community uses, develops, publishes and supports Mozilla products, thereby promoting free software and open standards. The community is supported institution ...
engineer Kevin Dangoor in January, 2009 and initially named ServerJS.
In August 2009, the project was renamed ''CommonJS'' to show the broader applicability of the
API
An application programming interface (API) is a connection between computers or between computer programs. It is a type of software interface, offering a service to other pieces of software. A document or standard that describes how to build ...
s.
Specifications are created and approved in an open process. A specification is only considered ''final'' after it has been finished by multiple implementations. CommonJS is not affiliated with the
Ecma International
Ecma International () is a Nonprofit organization, nonprofit standards organization for information and communication systems. It acquired its current name in 1994, when the European Computer Manufacturers Association (ECMA) changed its name to ...
group TC39 working on
ECMAScript
ECMAScript (; ES) is a standard for scripting languages, including JavaScript, JScript, and ActionScript. It is best known as a JavaScript standard intended to ensure the interoperability of web pages across different web browsers. It is stan ...
, but some members of TC39 participate in the project.
Specifications
The list of specifications includes:
Current
Proposals
The proposals cover much more than modules. They intend to define a set of APIs that are useful both for non-web JavaScript implementations, with standardized package names to provide interoperability within the ecosystem. This goal sometimes overlaps with that of TC39, and parts such as Promises have indeed made it into ECMAScript itself.
The part after the slash is the version. When a proposal is in contention, each individual proposal (including sequential revisions from the same author) is assigned a new letter. When the main direction is known it starts being assigned numeric versions.
Implementations
See also
*
Asynchronous module definition (AMD), another JavaScript module architecture
*
Comparison of server-side JavaScript solutions
*
Document Object Model
The Document Object Model (DOM) is a cros s-platform and language-independent API that treats an HTML or XML document as a tree structure wherein each node is an object representing a part of the document. The DOM represents a document with ...
(DOM), a
web browser
A web browser, often shortened to browser, is an application for accessing websites. When a user requests a web page from a particular website, the browser retrieves its files from a web server and then displays the page on the user's scr ...
client-side application programming interface
An application programming interface (API) is a connection between computers or between computer programs. It is a type of software Interface (computing), interface, offering a service to other pieces of software. A document or standard that des ...
(API) commonly available in JavaScript
*
JSGI
References
External links
*
*
{{DEFAULTSORT:Commonjs
JavaScript