Webpack은 JavaScript 애플리케이션을 위한 모듈 번들러로, 프로젝트의 모든 모듈을 하나의 번들 파일로 만들어주는 기능을 제공합니다. 이를 통해 애플리케이션의 로딩 속도를 향상시킬 수 있고, 모듈 간의 의존성을 관리하고 코드를 구조화하는 데도 유용합니다.
Webpack 설치하기
Webpack을 사용하기 위해서는 먼저 Node.js와 npm이 설치되어 있어야 합니다. 설치가 완료되었다면 다음 명령어를 사용하여 Webpack을 Gloabl로 설치합니다.
npm install -g webpack
프로젝트 설정파일 생성하기
Webpack을 사용하기 위해서는 프로젝트 루트 디렉토리에 설정파일을 생성해야 합니다. 주로 webpack.config.js
라는 이름으로 저장하며, 이 파일에는 Webpack의 동작에 대한 설정을 작성합니다.
// webpack.config.js
const path = require('path');
module.exports = {
entry: './src/index.js',
output: {
path: path.resolve(__dirname, 'dist'),
filename: 'bundle.js'
},
module: {
rules: [
{
test: /\.js$/,
exclude: /node_modules/,
use: {
loader: 'babel-loader',
options: {
presets: ['@babel/preset-env']
}
}
}
]
}
};
위 코드는 기본적인 웹팩 설정 파일의 예시입니다. entry
는 애플리케이션의 진입점을 지정하고, output
은 번들 파일이 생성될 경로와 파일명을 설정합니다. module.rules
는 로더를 통해 특정 파일 형식을 처리하도록 설정하는 부분입니다. 위 설정 예시에서는 ES6로 작성된 JavaScript 파일을 Babel 로더를 통해 ES5로 변환하도록 설정되어 있습니다.
모듈 번들링하기
Webpack 설정 파일이 작성되었다면 다음 명령어를 실행하여 모듈 번들링을 수행할 수 있습니다.
webpack
위 명령어를 실행하면 entry
에 설정된 진입점 파일을 읽어들여 의존성을 분석하고, 모든 모듈을 하나의 번들 파일로 만들어 output
에 설정된 경로에 저장합니다.
추가 설정 및 플러그인 사용하기
Webpack은 다양한 설정 옵션과 플러그인을 제공하여 유연하게 사용할 수 있습니다. 가장 흔히 사용되는 플러그인 중 하나는 HtmlWebpackPlugin
으로, HTML 파일을 번들 파일에 자동으로 연결해줍니다.
먼저 HtmlWebpackPlugin
을 설치합니다.
npm install --save-dev html-webpack-plugin
설치 후 webpack.config.js
파일에 다음과 같이 플러그인을 추가합니다.
// webpack.config.js
const HtmlWebpackPlugin = require('html-webpack-plugin');
const path = require('path');
module.exports = {
// ...
plugins: [
new HtmlWebpackPlugin({
template: './src/index.html'
})
]
// ...
};
위 설정에서 template
은 번들에 포함될 HTML 파일을 의미합니다. 이후에 webpack
명령어를 실행하면 번들 파일에 HTML 파일이 자동으로 연결됩니다.
결론
Webpack은 모듈 번들링에 필요한 기능을 제공하며, 애플리케이션의 구조화와 로딩 성능을 향상시킬 수 있는 강력한 도구입니다. 기본 설정을 통해 간단히 시작할 수 있으며, 추가적인 설정과 플러그인을 사용하여 더 많은 기능을 활용할 수 있습니다.