CommonJS es solo un estándar que especifica una forma de modularizar JavaScript, por lo que CommonJS no proporciona ninguna biblioteca de JavaScript.
CommonJS especifica una función require()
que le permite a uno importar los módulos y luego usarlos, los módulos tienen una variable global especial llamada exports
que es un objeto que contiene las cosas que se exportarán.
// foo.js ---------------- Example Foo module
function Foo() {
this.bla = function() {
console.log('Hello World');
}
}
exports.foo = Foo;
// myawesomeprogram.js ----------------------
var foo = require('./foo'); // './' will require the module relative
// in this case foo.js is in the same directory as this .js file
var test = new foo.Foo();
test.bla(); // logs 'Hello World'
La librería estándar Node.js y todas las bibliotecas 3 ª Parte usar CommonJS modularizar su código.
Un ejemplo más:
// require the http module from the standard library
var http = require('http'); // no './' will look up the require paths to find the module
var express = require('express'); // require the express.js framework (needs to be installed)
Así CommonJS simplemente especifica require()? ¿Eso es? Suena "más grande" que eso cuando estás leyendo :) – ajsie
@wend Bueno, también define una función de envoltura anónima para encapsular el contenido de los módulos, pero una vez más cómo se ve exactamente esa función se deja a la implementación, la función 'require' y el objeto 'exports' es todo lo que las implementaciones tienen que compartir. Así que sí, suena bastante grande con todas las especificaciones y estándares en su sitio: D –
¿Entonces commonJS es solo una forma de exportación que la mayoría de las bibliotecas adoptaron? no es de una pieza derivada de código, pero se puede utilizar con JS en cualquier momento sin ninguna instalación? – stackjlei