[javascript] Webpack으로 Babel을 이용한 ES6+ 변환하기

지금은 대부분의 웹 개발자들이 ES6+ 문법을 사용하여 JavaScript 애플리케이션을 개발하고 있습니다. 하지만, 모든 브라우저에서 이러한 문법을 지원하지 않는다는 점이 문제입니다. 이 문제를 해결하기 위해 Babel이라는 훌륭한 도구를 사용할 수 있습니다. Babel은 ES6+ 문법을 ES5로 변환하여 모든 브라우저에서 실행할 수 있는 JavaScript 코드로 변환해줍니다. 하지만, Babel만을 사용하여 수동으로 변환 작업을 수행하는 것은 번거로울 수 있습니다. 이러한 문제를 해결하기 위해 Webpack과 Babel을 함께 사용하여 자동 변환 과정을 설정할 수 있습니다.

Webpack 설정하기

먼저, 프로젝트에 Webpack을 설치해야 합니다. 다음 명령어를 사용하여 Webpack을 설치하세요:

npm install webpack webpack-cli --save-dev

다음으로, Babel을 설치해야 합니다. 이를 위해 다음 명령어를 사용하세요:

npm install @babel/core @babel/preset-env babel-loader --save-dev

이제 Webpack 설정 파일인 webpack.config.js를 생성하세요. 아래 코드를 복사하여 붙여넣으세요:

module.exports = {
  entry: './src/index.js',
  output: {
    filename: 'bundle.js',
    path: `${__dirname}/dist`
  },
  module: {
    rules: [
      {
        test: /\.js$/,
        exclude: /node_modules/,
        use: {
          loader: 'babel-loader',
          options: {
            presets: ['@babel/preset-env']
          }
        }
      }
    ]
  }
};

이제 Webpack 설정이 완료되었습니다. entry는 웹 애플리케이션의 진입점을 나타내는 파일 경로를 의미합니다. output은 변환된 JavaScript 파일이 생성될 경로와 이름을 설정합니다. module.rules는 파일을 변환하는 규칙을 설정하는 부분입니다. 여기서는 확장자가 .js인 파일들을 선택하고, babel-loader를 사용하여 Babel로 변환하도록 설정했습니다.

Babel 설정하기

Babel을 사용하기 위해 .babelrc 파일을 생성하세요. 아래 코드를 복사하여 붙여넣으세요:

{
  "presets": ["@babel/preset-env"]
}

위 설정은 @babel/preset-env 프리셋을 사용하여 ES6+ 문법을 변환합니다.

패키지 스크립트 설정하기

마지막으로, package.json 파일의 scripts 부분에 다음 내용을 추가합니다:

"scripts": {
  "build": "webpack"
}

이제 npm run build 명령어를 사용하여 Webpack이 설정에 따라 Babel을 통해 ES6+ 코드를 변환하고 번들링하여 최종 결과물인 bundle.js 파일을 생성할 수 있습니다.

결론

Webpack과 Babel을 함께 사용하여 ES6+ 코드를 ES5로 변환하는 설정을 해봤습니다. 이를 통해 모든 브라우저에서 ES6+ 문법을 지원하는 웹 애플리케이션을 개발할 수 있습니다. 참고로, 이 설정은 개발 환경에서 사용되며, 운영 환경에서는 Webpack의 Production 모드를 사용하여 최적화된 코드를 생성하는 것이 좋습니다.