같은 수준(레벨)의 언어를 변환하는 도구
e.g.) TypeScript → JavaScript, ES6 → ES5
| 트랜스파일러 | 주요 기능 | 특징 |
|---|---|---|
| Babel | ESNext → ES5 변환, JSX 변환 | 플러그인·폴리필 풍부, 느리지만 유연 |
TypeScript Compiler (tsc) | TS → JS + 타입 검사 | 타입 안정성 확보, 느리지만 정확 |
| SWC | Babel 대체 (Rust 기반) | Next.js 기본 탑재, 매우 빠름 ⚡ |
| esbuild | 초고속 트랜스파일러 (Go 기반) | Vite 등에서 사용, 번들링까지 지원 |
| Sucrase | 빠른 TS/JSX 변환기 | 개발 서버용(검사 없음, 빠름) |
여러 개의 JS 파일(모듈)을 불러오고 연결해주는 시스템 ⇒ 파일 간 의존성을 해결해주는 연결자
import, require() 등을 해석해서 어떤 순서로, 어떤 모듈을 불러올지 결정한다.| 시스템 | 문법 | 사용 환경 | 로더 종류 |
|---|---|---|---|
| CommonJS (CJS) | require(), module.exports | Node.js (기본) | Node.js 내장 로더 |
| ES Module (ESM) | import, export | 브라우저, Node (ESM 모드) | 브라우저 네이티브, Node 로더 |
| AMD (Asynchronous Module Definition) | define(['dep'], fn) | 구형 브라우저 (RequireJS) | RequireJS |
| UMD (Universal Module Definition) | CJS + AMD 혼합 | 브라우저 + Node 겸용 | 라이브러리 배포용 |
| SystemJS | 동적 import 지원 | 다양한 환경 호환 | System Loader API 기반 |
| Dynamic Import | import() | 최신 브라우저, Node | 런타임 동적 로더 |