2010-11-25 4 views
9

때때로 CommonJS http://www.commonjs.org/은 일련의 모듈 식 자바 스크립트 구성 요소를 만들기위한 노력이지만 솔직히 나는 그것에 대해 전혀 이해하지 못했다고 들었습니다.CommonJS 모듈은 어디에 있습니까?

내가 사용할 수있는 모듈러 구성 요소는 어디에 있습니까? 나는 그들의 홈페이지에서별로 보지 못합니다.

답변

16

CommonJS는 JavaScript를 모듈화하는 방법을 지정하는 표준이므로 CommonJS는 JavaScript 라이브러리를 제공하지 않습니다.

CommonJS는 모듈을 가져 와서 사용할 수있는 require() 함수를 지정하고 모듈에는 내보낼 항목을 보유하는 객체 인 exports이라는 특수 전역 변수가 있습니다.

// 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' 

Node.js를 표준 라이브러리 및 모든 제 3의 라이브러리

는 자신의 코드를 모듈화 CommonJS를 사용합니다.

하나 더 예 :

// 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

그래서 CommonJS 그냥 필요로 지정()? 그게 다야? 그것은 당신이 그것에 대해 읽을 때보다 "큰"소리 : – ajsie

+1

@wend 잘 모듈 내용을 캡슐화하는 익명의 래퍼 함수를 ​​정의하지만, 다시 얼마나 정확하게 그 함수가 구현에 남아 있는지,'require' 함수 'exports' 객체는 모두 구현물이 공유해야하는 객체입니다. 그래서 예, 사이트의 모든 사양과 표준에 따라 꽤 크게 들립니다. D –

+0

그래서 commonJS는 대부분의 도서관에서 채택한 수출 방법 일뿐입니다. 파생 된 코드 조각이 아니라 설치없이 언제든지 JS와 함께 사용할 수 있습니까? – stackjlei

1

아이디어가 보인다 (나는이 인식하지 않았다), 그냥 웹 브라우저보다 자바 스크립트를 제공하는 것입니다. 예를 들어, CouchDB은 쿼리 용 자바 스크립트를 지원합니다.

0

CommonJS는 모듈 두 개가 서로 통신해야하는 방식을 정의하는 모듈입니다. 이 명세는 exports 변수와 require 함수를 사용하여 모듈이 어떻게 노출되고 소비되는지 정의한다.

CommonJS 사양을 구현하기 위해 CommonJS 사양을 따르는 많은 오픈 소스 JS 프레임 워크가 있습니다. JS 로더의 일부 예로는 systemJS, Webpack, RequireJS 등이 있습니다. 다음은 CommonJS를 설명하는 간단한 비디오이며 systemJS가 일반적인 js 사양을 구현하는 방법을 보여줍니다.

공통 JS 비디오 : - https://www.youtube.com/watch?v=jN4IM5tp1SE

관련 문제