commonjs 방식 (cjs)
- nodejs가 채택하고 있는 방식이 commonjs이다.
- 모듈을 호출하는 방식은 require이다.
- 동기적으로 작동한다.
foo.js
const foo = 1;
exports.foo = foo;
bar.js
const f = require('foo.js');
console.log(f.foo) // 1;
- 내보내는 방식이 module.exports이다.
ESM 방식
- 조금 더 익숙한 import, export방식이다.
- node 12부터 esm방식을 공식 지원함.
- 비동기적으로 작동한다.
- 지원하긴 하지만 브라우저가 지원하지 않기 때문에 번들러를 이용해야 함.
- 확장자 .mjs를 써도 된다.
참조문헌
https://toss.tech/article/commonjs-esm-exports-field
AMD (Asynchronous Module Definition)
- 이를 이용한 것이 대표적으로 RequireJS
define([file], function (lib) {
console.log(lib)
})
UMD
AMD와 CommonJS를 모두 대응하기 위한 방법.