2010-11-25 20 views

Respuesta

16

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) 
+0

Así CommonJS simplemente especifica require()? ¿Eso es? Suena "más grande" que eso cuando estás leyendo :) – ajsie

+1

@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 –

+0

¿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

1

La idea, que parece (yo no era consciente de ello), es proporcionar javascript para algo más que los navegadores web. Por ejemplo, CouchDB admite javascript para consultas.

0

CommonJS NO ES UN MÓDULO es solo una especificación que define cómo dos módulos JavaScript deben comunicarse entre sí. Esta especificación usa una variable de exportación y requiere una función para definir cómo los módulos se expondrán y se consumirán entre sí.

Para implementar la especificación CommonJS tenemos muchos frameworks JS de código abierto que siguen la especificación CommonJS. Algunos ejemplos de cargadores JS son systemJS, Webpack, RequireJS, etc. A continuación se muestra un video simple que explica CommonJS y también demuestra cómo systemJS implementa especificaciones js comunes.

Común JS de vídeo: - https://www.youtube.com/watch?v=jN4IM5tp1SE

Cuestiones relacionadas