>  기사  >  웹 프론트엔드  >  CommonJS 사양이란 무엇입니까? CommonJS 사양 이해

CommonJS 사양이란 무엇입니까? CommonJS 사양 이해

不言
不言앞으로
2018-10-26 15:11:572586검색

이 기사에서는 CommonJS 사양이 무엇인지 설명합니다. CommonJS 사양을 이해하면 참고할만한 가치가 있습니다. 도움이 필요한 친구가 참고할 수 있기를 바랍니다.

앞에 쓰기:
 파일은 모듈입니다.
 또한 이 글의 샘플 코드는 node.js 환경에서 정상적으로 실행되어야 하며, 그렇지 않으면 오류가 발생합니다. 사실 ES6은 이미 모듈 사양에 등장했습니다. ES6 모듈 사양을 사용하면 node.js 환경이 필요하지 않습니다. 따라서 commonJS 사양은 ES6 모듈 사양과 구별되어야 합니다.

1. CommonJS 사양은 왜 개발되었나요?

백엔드에서는 JavaScript 사양이 훨씬 뒤떨어지고 결함이 많아 JavaScript를 사용하여 대규모 애플리케이션을 개발하기 어렵습니다. 예:

모듈 시스템 없음
표준 라이브러리 부족
표준 인터페이스 없음
패키지 관리 시스템 부족
목록 내용

CommonJS 사양은 주로 표준이 없는 JavaScript의 단점을 보완하기 위해 제안되었으며 현재 수준에 이르렀습니다. Python, Ruby, Java의 작은 브라우저 측 스크립트 개발 단계에 머물지 않고 대규모 애플리케이션을 개발할 수 있는 기본 능력을 갖추고 있습니다.

2. CommonJS 모듈 사양
 CommonJS 모듈 사양은 크게 모듈 참조, 모듈 정의, 모듈 식별의 세 부분으로 나뉩니다.

1. 모듈 참조

a.js 파일

var math=require('math');

에서 다음 명령문을 사용하는 경우 require() 메서드를 사용하여 수학 모듈을 도입하고 이를 math 변수에 할당하는 것을 의미합니다. 실제로 명명된 변수 이름과 가져온 모듈 이름이 동일할 필요는 없습니다. 다음과 같습니다.

var Math=require('math');

할당의 의미는 a.js에서 Math만 인식된다는 것입니다. 이는 정의된 변수이기 때문입니다. 수학이 정의되지 않았기 때문에 수학은 인식되지 않습니다.

경로가 있는 것과 경로가 없는 것

위의 예에서 require 매개변수는 경로가 없는 모듈 이름의 문자열일 뿐이며, 현재 디렉터리의 node_modules 디렉터리에 있는 수학 모듈을 참조합니다. js가 위치해있습니다. 현재 디렉터리에 node_modules 디렉터리가 없거나 수학 모듈이 node_modules 디렉터리에 설치되어 있지 않으면 오류가 보고됩니다.
 
가져올 모듈이 다른 경로에 있는 경우 상대 경로나 절대 경로를 사용해야 합니다. 예:

var add=require('./add.js')

  위 예에서는 현재 디렉터리의 add.js 파일이 도입되어 다음에 할당됩니다. 변수 추가.

2. 모듈 정의

모듈 객체: 각 모듈에서 모듈 객체는 모듈 자체를 나타냅니다.
내보내기 속성: 외부 세계에 대한 인터페이스를 제공하는 모듈 개체의 속성입니다.

이전 예제를 계속 사용하면서 add.js의 코드가 다음과 같다고 가정합니다.

function add(num1,num2){
    alert(num1+num2);
}

a.js 파일에 add.js 파일이 도입되었지만 전자는 여전히 후자의 add 기능을 사용할 수 없습니다. .js 파일 add(3,5)와 같은 코드는 add가 함수가 아님을 나타내는 오류를 보고합니다.
 add.js의 기능을 다른 모듈에서 사용하려면 외부 인터페이스를 노출해야 하며 이 작업을 완료하는 데 사용됩니다. add.js의 코드를 다음과 같이 변경합니다.

exports.add=function (num1,num2){
    alert(num1+num2);
}

 a.js 파일은 add.js의 메서드를 정상적으로 호출할 수 있습니다. 예를 들어, 이전 add.add(3,5)와 같은 호출은 정상적으로 실행될 수 있습니다. 파일에서 add 변수로 표현되는 모듈이고, 후자의 add는 모듈을 소개하는 add 메소드입니다.

3. 모듈 식별

모듈 식별은 require 메소드에 전달되는 매개변수를 의미하며, 이는 카멜 케이스로 명명된 문자열이거나 ., ..로 시작하는 상대 경로 또는 절대 경로여야 합니다.

3. CommonJS 모듈 사양의 장점
CommonJS 모듈 사양은 가변 오염 문제를 매우 잘 해결합니다. 각 모듈은 독립적인 공간을 가지며 비교적 네임스페이스와 같은 스키마가 창백합니다.

CommonJS 표준 정의 모듈은 매우 간단하고 인터페이스가 매우 간결합니다.

CommonJS 모듈 사양은 가져오기 및 내보내기 기능을 지원하므로 각 모듈을 원활하게 연결하고 서로 간의 종속성을 구현할 수 있습니다.

위 내용은 CommonJS 사양이란 무엇입니까? CommonJS 사양 이해의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 segmentfault.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제