본문 바로가기
webpack

8. Webpack의 핵심 개념 - 3

by leo2114 2023. 12. 24.
반응형

Webpack Plugin의 활용

Webpack은 Loader를 통해 모듈을 변환하는 역할을 수행하고, 이에 더해 Plugin을 통해 번들된 결과물에 다양한 작업을 수행할 수 있습니다. Plugin은 번들링된 자원에 대해 추가적인 처리나 최적화, 환경 변수 주입 등을 수행하여 프로젝트에 필요한 기능을 제공합니다.

1. Plugin의 개념

Plugin은 웹팩의 빌드 프로세스에 개입하여 특정 작업을 수행합니다. Loader가 각 모듈에 대한 변환을 담당한다면, Plugin은 번들된 결과물 전체에 대한 작업을 담당합니다.

2. Plugin의 활용 예시

다양한 Plugin이 존재하며, 그 중 몇 가지를 살펴보면서 실제 사용 예시를 살펴보겠습니다.

2.1 HtmlWebpackPlugin

HtmlWebpackPlugin은 번들된 결과물에 대해 HTML 파일을 생성하고, 자동으로 번들된 자원을 연결해주는 역할을 합니다.

// webpack.config.js
const HtmlWebpackPlugin = require('html-webpack-plugin');

module.exports = {
  // ...
  plugins: [
    new HtmlWebpackPlugin({
      template: './src/index.html', // 사용할 HTML 템플릿 파일
      filename: 'index.html', // 생성될 HTML 파일의 이름
    }),
  ],
};

2.2 CleanWebpackPlugin

CleanWebpackPlugin은 빌드 이전 결과물을 제거해주는 역할을 합니다. 이를 통해 새로운 빌드에서 이전 결과물의 영향을 받지 않을 수 있습니다.

// webpack.config.js
const { CleanWebpackPlugin } = require('clean-webpack-plugin');

module.exports = {
  // ...
  plugins: [
    new CleanWebpackPlugin(),
  ],
};

2.3 DefinePlugin

DefinePlugin은 번들된 코드 내에서 전역 상수나 환경 변수를 정의할 때 사용됩니다.

// webpack.config.js
const { DefinePlugin } = require('webpack');

module.exports = {
  // ...
  plugins: [
    new DefinePlugin({
      'process.env.NODE_ENV': JSON.stringify('production'), // 예시: 프로덕션 환경으로 설정
    }),
  ],
};

3. Plugin의 추가 및 확장

마치 함수처럼, Plugin도 쉽게 추가하고 확장할 수 있습니다. 원하는 Plugin을 설치하고 require하여 사용하면 됩니다.

또한, 직접 Plugin을 작성하여 프로젝트에 특화된 작업을 수행할 수도 있습니다. 이는 웹팩의 강력한 기능 중 하나로, 프로젝트의 요구 사항에 맞게 Plugin을 개발하여 적용할 수 있습니다.

반응형