[typescript] 타입스크립트 모듈 번들러의 브라우저 지원

웹 개발을 하다 보면 모듈 번들러를 사용하여 여러 개의 파일을 결합하고 브라우저에서 실행 가능한 번들 파일을 생성해야 하는 경우가 있습니다. 최근에는 웹 어플리케이션에서 타입스크립트 모듈을 사용하는 경우가 많아졌는데, 타입스크립트 모듈 번들러를 사용하여 브라우저에서 모듈 시스템을 지원할 수 있습니다. 이번 글에서는 주요한 타입스크립트 모듈 번들러 중 하나인 Webpack과 Rollup이 어떻게 브라우저에서 모듈 시스템을 지원하는지 살펴보겠습니다.

Webpack

Webpack은 현대 자바스크립트 애플리케이션을 위한 스태틱 모듈 번들러입니다. Webpack을 사용하여 타입스크립트 모듈을 번들링하면 브라우저가 모듈 시스템을 이해할 수 있도록 코드를 번들링합니다. 또한 Webpack은 webpack-dev-server를 사용하여 개발 서버를 실행하고 브라우저에서 번들링된 애플리케이션을 테스트할 수 있습니다.

// webpack.config.js
const path = require('path');

module.exports = {
  entry: './src/index.ts',
  output: {
    filename: 'bundle.js',
    path: path.resolve(__dirname, 'dist'),
  },
  module: {
    rules: [
      {
        test: /\.ts$/,
        use: 'ts-loader',
        exclude: /node_modules/,
      },
    ],
  },
  resolve: {
    extensions: ['.ts', '.js'],
  },
};

Rollup

Rollup은 간단하면서도 효율적인 번들러로, 타입스크립트 모듈을 번들링할 때 Rollup을 사용하면 코드 트리를 분석하여 사용되지 않는 코드를 제거하여 번들 크기를 최소화할 수 있습니다. Rollup은 ESM(ES6 모듈)을 지원하고, 이를 통해 Tree-shaking을 통해 사용되지 않는 코드를 제거하여 번들 크기를 최적화합니다.

// rollup.config.js
import typescript from 'rollup-plugin-typescript2';

export default {
  input: 'src/index.ts',
  output: {
    file: 'dist/bundle.js',
    format: 'iife',
  },
  plugins: [
    typescript(),
  ],
};

두 모듈 번들러 모두 타입스크립트 모듈을 브라우저에서 지원 가능한 형태로 번들링하여 제공합니다. 웹팩(Webpack)롤업(Rollup)에 대해 더 자세히 알고 싶다면 공식 문서를 참고하시기 바랍니다.

모듈 번들러를 사용하여 타입스크립트 모듈을 브라우저에서 지원할 수 있기 때문에, 웹 어플리케이션을 개발할 때 모듈 시스템을 효과적으로 활용할 수 있습니다.