질문 : Node.js를 사용하려면 ES6 import / export가 필요합니다.
공동 작업중인 프로젝트에서 사용할 수있는 모듈 시스템에 대해 두 가지 선택이 있습니다.
하나를 다른 것보다 사용하면 성능상의 이점이 있습니까? Node 1보다 ES6 모듈을 사용하려면 알아야 할 다른 것이 있습니까?
답변
하나를 다른 것보다 사용하면 성능상의 이점이 있습니까?
ES6 모듈을 기본적으로 지원하는 JavaScript 엔진은 아직 없습니다. 당신은 Babel을 사용하고 있다고 스스로 말했습니다. Babel은 기본적 import
및 export
선언을 CommonJS ( require
/ module.exports
)로 변환합니다. 따라서 ES6 모듈 구문을 사용하더라도 Node.js에서 코드를 실행하면 내부에서 CommonJS를 사용하게됩니다.
CommonJS와 ES6 모듈 사이에는 기술적 인 차이가 있습니다. 예를 들어 CommonJS를 사용하면 모듈을 동적으로로드 할 수 있습니다. ES6에서는이를 허용하지 않지만이를 위해 개발중인 API가 있습니다.
ES6 모듈은 표준의 일부이기 때문에 사용하겠습니다.
2020 업데이트
Node v12부터 ES 모듈에 대한 지원은 기본적으로 활성화되어 있지만이 글을 쓰는 시점에서는 아직 실험 단계입니다. 노드 모듈을 포함하는 파일은 .mjs
거나 가장 가까운 package.json
"type": "module"
포함되어야합니다. Node 문서 에는 CommonJS와 ES 모듈 간의 상호 운용성에 대한 많은 정보가 있습니다.
성능 측면에서 항상 새로운 기능이 기존 기능만큼 최적화되지 않을 가능성이 있습니다. 그러나 모듈 파일은 한 번만 평가되므로 성능 측면은 무시할 수 있습니다. 결국 확실한 답을 얻으려면 벤치 마크를 실행해야합니다.
import()
함수를 통해 동적으로로드 할 수 있습니다. require
와 달리 이것은 promise를 반환합니다.
출처 : https://stackoverflow.com/questions/31354559/using-node-js-require-vs-es6-import-export
'프로그래밍 언어 > HTML,CSS,JS' 카테고리의 다른 글
Chrome의 CSS 사용자 정의 스타일 버튼에서 파란색 테두리 제거 (0) | 2021.06.26 |
---|---|
클릭시 HTML 텍스트 입력의 모든 텍스트 선택 (0) | 2021.06.26 |
node.js에서 __dirname과 ./의 차이점 (0) | 2021.06.25 |
JavaScript를 통해 오디오를 재생하는 방법 (0) | 2021.06.25 |
파일이 예외없이 존재하는지 확인하는 방법 (0) | 2021.06.24 |