카테고리 없음
[React] 빌드 (번들링 Bundling, 트랜스파일링 Transpiling, 타입스크립트 컴파일)
wooyeon06
2025. 2. 17. 10:05
빌드 과정 (next build 실행)
- TypeScript → JavaScript 변환 (트랜스파일링)
- SWC(기본) 또는 Babel이 TypeScript를 JavaScript로 변환
- Type Checking은 tsc가 아니라 Next.js 자체 체크 (next lint)
- 모듈 번들링 (Webpack)
- Webpack이 모든 JS, CSS, 이미지 등을 하나로 묶음
- 트리 쉐이킹(Tree Shaking)으로 불필요한 코드 제거
- 최적화 및 압축
- CSS 및 JS 파일을 최소화 (Minification)
- 코드 스플리팅(Code Splitting)으로 필요한 부분만 로드 가능하게 만듦
트랜스파일링 (Transpiling)
: 최신 문법(ES6+, TypeScript 등)을 브라우저가 이해할 수 있는 코드(ES5 등)로 변환하는 과정
(Babel, SWC, TypeScript Compiler)
.ts => .js
const greet = (name: string): string => {
return `Hello, ${name}!`;
};
console.log(greet("World"));
var greet = function (name) {
return "Hello, " + name + "!";
};
console.log(greet("World"));
번들링 (Bundling)
: 여러 개의 파일을 하나로 합쳐 최적화된 단일 파일로 만드는 과정
( Webpack, Rollup, Vite 등의 번들러 )
app.js
import { greet } from './greet';
console.log(greet("World"));
greet.js
export const greet = (name) => {
return `Hello, ${name}!`;
};
webpack.config.js
module.exports = {
entry: './app.js',
output: {
filename: 'bundle.js',
path: __dirname + '/dist'
}
};
webpack 명령어를 실행하면 app.js와 greet.js가 결합된 bundle.js가 생성됩니다.
dist/bundle.js
(()=>{var e,t;console.log((t="World")=>{return `Hello, ${t}!`})()})();