본문 바로가기
webpack

20. 웹팩의 확장성과 생태계 - 1

by leo2114 2023. 12. 29.
반응형

Webpack 플러그인의 활용

웹팩 플러그인은 빌드 과정 중에 여러 작업을 수행하거나 번들 결과물을 최적화하는 데 사용됩니다. 이번 글에서는 몇 가지 유용한 웹팩 플러그인과 그 활용법에 대해 알아보겠습니다.

1. HtmlWebpackPlugin

HtmlWebpackPlugin은 HTML 파일을 생성하고 빌드된 번들 파일을 자동으로 삽입해주는 플러그인입니다. 이를 사용하면 빌드된 결과물을 쉽게 확인할 수 있습니다.

설치하기

npm install --save-dev html-webpack-plugin

사용하기

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

module.exports = {
  // ... 다른 설정 ...
  plugins: [
    new HtmlWebpackPlugin({
      template: 'src/index.html',
    }),
  ],
};

2. CleanWebpackPlugin

CleanWebpackPlugin은 빌드 이전 결과물을 자동으로 제거해주는 플러그인입니다. 이를 통해 새로운 빌드에서 이전 파일들과 충돌하는 일을 방지할 수 있습니다.

설치하기

npm install --save-dev clean-webpack-plugin

사용하기

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

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

3. MiniCssExtractPlugin

MiniCssExtractPlugin은 CSS 파일을 별도로 추출하여 번들 결과물에서 분리시키는 플러그인입니다. 이를 통해 브라우저 캐싱을 효과적으로 활용할 수 있습니다.

설치하기

npm install --save-dev mini-css-extract-plugin

사용하기

// webpack.config.js
const MiniCssExtractPlugin = require('mini-css-extract-plugin');

module.exports = {
  // ... 다른 설정 ...
  module: {
    rules: [
      {
        test: /\.css$/,
        use: [
          MiniCssExtractPlugin.loader,
          'css-loader',
        ],
      },
    ],
  },
  plugins: [
    new MiniCssExtractPlugin({
      filename: 'styles.css',
    }),
  ],
};

 

위에서는 CSS 파일을 styles.css로 추출하도록 설정하였습니다.

4. DefinePlugin

DefinePlugin은 빌드할 때 전역 상수를 정의해줍니다. 주로 환경변수를 주입할 때 사용합니다.

사용하기

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

module.exports = {
  // ... 다른 설정 ...
  plugins: [
    new webpack.DefinePlugin({
      'process.env.NODE_ENV': JSON.stringify('production'),
    }),
  ],
};

 

위 설정에서는 process.env.NODE_ENV를 프로덕션 모드로 설정하였습니다.

이렇게 몇 가지 유용한 웹팩 플러그인을 사용하여 프로젝트의 빌드 및 번들링 과정을 더욱 효과적으로 관리할 수 있습니다.

반응형