Webpack 설정 생성기
webpack.config.js를 기억에 의존해 쓰려면 output의 정확한 형태, 각 로더의 test 정규식, 플러그인이 연결되는 방식을 떠올려야 합니다. 이 생성기는 그것을 짧은 폼으로 바꿉니다. 엔트리 파일, 출력 폴더, 빌드 모드를 설정한 뒤 필요한 부분, 즉 TypeScript, Babel, CSS 로더, HtmlWebpackPlugin, 개발 서버를 체크하세요. [contenthash] 파일 이름과 output.clean이 이미 들어간, 복사해서 바로 쓰는 깔끔한 webpack 5 설정을 만들어 냅니다.
webpack 설정을 만드는 법
-
1
entry와 출력 설정
엔트리 파일(기본값 `./src/index.js`)과 출력 폴더(기본값 `dist`)를 입력하세요.
-
2
모드 선택
`production` 또는 `development`를 고르세요. 값은 곧바로 `mode` 필드에 기록됩니다.
-
3
로더와 플러그인 켜기
필요에 따라 TypeScript(`ts-loader`), Babel(`babel-loader`), CSS 로더(`style-loader` + `css-loader`), `HtmlWebpackPlugin`, 개발 서버를 켜세요.
-
4
설정 복사
`webpack.config.js`가 실시간으로 갱신됩니다. 복사 버튼을 눌러 프로젝트 루트에 붙여넣으세요.
기본 출력
기본값(production 모드, TypeScript, Babel, CSS 로더, HtmlWebpackPlugin)에서 생성기는 다음을 만듭니다.
const path = require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin');
module.exports = {
mode: 'production',
entry: './src/index.js',
output: {
path: path.resolve(__dirname, 'dist'),
filename: 'bundle.[contenthash].js',
clean: true,
},
resolve: { extensions: ['.ts','.tsx','.js'] },
module: {
rules: [
{ test: /\.tsx?$/, use: 'ts-loader', exclude: /node_modules/ },
{ test: /\.jsx?$/, exclude: /node_modules/, use: 'babel-loader' },
{ test: /\.css$/, use: ['style-loader', 'css-loader'] },
],
},
plugins: [
new HtmlWebpackPlugin({ template: './src/index.html' }),
],
};
각 옵션이 쓰는 것
| 옵션 | 설정에 추가되는 내용 |
|---|---|
| entry | entry 값, 예: entry: './src/index.js'. |
| 출력 폴더 | output.path, path.resolve(__dirname, 'dist')로 해석됩니다. |
| mode | mode: 'production' 또는 mode: 'development'. |
| TypeScript | .ts/.tsx용 ts-loader 규칙과 그 확장자를 resolve에 추가합니다. |
| Babel | .js/.jsx용 babel-loader 규칙. |
| CSS 로더 | .css용으로 style-loader와 css-loader를 연결하는 규칙. |
| HtmlWebpackPlugin | require 줄과 new HtmlWebpackPlugin({ template: './src/index.html' }). |
| 개발 서버 | 출력 폴더를 3000 포트에서 핫 리로드로 제공하는 devServer 블록. |
출력에서 고정된 선택
스타터 설정을 깔끔하게 유지하기 위해 일부 값은 필드로 노출하지 않고 대신 정해 둡니다.
- 해시된 파일 이름.
output.filename은 항상bundle.[contenthash].js이며, 번들이 바뀔 때마다 브라우저 캐시를 무효화합니다. - 깨끗한 출력.
output.clean: true는 빌드마다 출력 폴더를 비웁니다. webpack 5에서clean-webpack-plugin을 대체합니다. - CSS는 번들에 포함되고 추출되지 않습니다.
style-loader는 JavaScript로 스타일을 주입합니다. 프로덕션에서 별도의.css파일을 만들려면MiniCssExtractPlugin을 직접 추가하세요. - 개발 서버 기본. 켜면
devServer가static,port: 3000,hot: true를 설정합니다. 앱에 필요하면historyApiFallback이나proxy같은 옵션을 직접 추가하세요.
더 확장하기
생성된 파일은 출발점이지 완전한 프로덕션 설정이 아닙니다. 직접 추가하는 흔한 다음 단계는 추출한 CSS를 위한 MiniCssExtractPlugin, .scss를 위한 sass-loader, 이미지와 폰트를 위한 webpack 5 asset 모듈, 소스맵을 위한 devtool 값, 코드 분할을 위한 splitChunks 블록입니다.
자주 묻는 질문
webpack 5용입니다. 출력이 output.clean과 [contenthash] 파일 이름, 즉 현대적인 webpack 5 관례를 사용하므로 별도의 clean 플러그인이 필요 없습니다.
아니요, 항상 JavaScript로 webpack.config.js를 씁니다. TypeScript 옵션을 켜면 webpack이 .ts/.tsx 소스를 컴파일하도록 ts-loader 규칙이 추가됩니다. 설정 파일 자체의 형식은 바뀌지 않습니다.
생성된 devServer 블록은 3000 포트를 핫 리로드와 함께 사용합니다. 다른 포트가 필요하면 복사한 파일에서 port 값을 바꾸세요.
네. 각 옵션이 자체 규칙을 추가하므로(.tsx?는 ts-loader, .jsx?는 babel-loader), 프로젝트가 트랜스파일하는 방식에 따라 하나, 다른 하나, 또는 둘 다 켤 수 있습니다.
관련 도구
ASCII 표 참조
NUL, LF, DEL 같은 제어 문자를 포함해 모든 문자에 대한 10진수, 16진수, 8진수, 2진수, HTML 숫자 문자 참조를 담은 0부터 127까지의 전체 ASCII 표.
FPS 카운터
requestAnimationFrame으로 브라우저 FPS를 측정하세요. 스무딩, 최소/최대 프레임레이트, 경고 임계값, 선택형 그래프를 제공합니다. 업로드나 API 없이 로컬에서 실행됩니다.
HTML 문자 참조
HTML 엔티티의 검색 가능한 목록, 각 엔티티의 이름 및 숫자 코드, 그리고 특수 문자 및 기호에 대한 1클릭 복사 기능을 제공합니다.
색상 혼합기
두 HEX 색상을 2-20개의 균등한 색상 견본으로 섞습니다. 양 끝 색상을 포함해 각 중간 색상을 대문자 HEX 코드로 확인하세요.
ASCII 이진수 변환기
ASCII 문자열을 이진수 표현으로 변환하세요. 각 문자는 8비트가 되고 공백으로 구분되어 프로토콜 추적이나 과제에 바로 붙여넣기 좋습니다.
색상 틴트 생성기
기준 색의 밝은 틴트를 생성합니다. 디자인 시스템 토큰, 배경, 호버 상태를 위한 3-20단계 스케일.
이 도구는 다른 언어로도 제공됩니다
- Generator konfiguracji webpack [PL]
- ตัวสร้างการตั้งค่า Webpack [TH]
- Generador de Configuración de Webpack [ES]
- Webpack設定ジェネレーター [JA]
- مولّد إعدادات Webpack [AR]
- Trình tạo cấu hình webpack [VI]
- Générateur de configuration Webpack [FR]
- Webpack-Konfigurationsgenerator [DE]
- Generator Konfigurasi Webpack [ID]
- Gerador de Configuração Webpack [PT]
- Webpack-konfigurationsgenerator [SV]
- Webpack-configuratiegenerator [NL]
- Webpack Config Generator [EN]
- Generatore di Configurazione Webpack [IT]
- Генератор конфигурации webpack [RU]
- Webpack Yapılandırma Oluşturucu [TR]
- Webpack 配置生成器 [ZH]