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の現代的な慣習を使うため、追加のクリーンプラグインは不要です。
いいえ、常にJavaScriptのwebpack.config.jsを書き出します。TypeScriptをオンにすると、webpackが.ts/.tsxのソースをコンパイルできるようts-loaderルールが追加されます。設定ファイル自体の形式は変わりません。
生成されるdevServerブロックはポート3000でホットリロードを使います。別のポートが必要なら、コピーしたファイルでportの値を変更してください。
はい。各オプションが独自のルールを追加するため(.tsx?にはts-loader、.jsx?にはbabel-loader)、プロジェクトのトランスパイル方法に応じて片方だけ、または両方をオンにできます。
関連ツール
ASCII表リファレンス
0から127までの完全なASCII表です。NUL、LF、DELなどの制御コードを含め、各文字の10進数、16進数、8進数、2進数、HTML数値文字参照を表示します。
FPS カウンター
requestAnimationFrame でブラウザーの FPS を測定。平滑化、最小・最大フレームレート、警告しきい値、任意のグラフに対応。ローカルで動作し、アップロードも API も不要です。
プレースホルダー画像ジェネレーター
1〜4000 pxの画像に色と文字を設定し、PNGで保存できます。外部URLとHTMLもコピーできます。
CMYK から RGB への変換
標準的な計算式で CMYK の割合をおおよその RGB 値と Hex 値に変換し、画面用にすばやく確認できます。
HTML 圧縮ツール
通常のコメントを削除し、空白を整理して、ブラウザ内で HTML をコンパクトにします。使用前に結果を確認してください。
HTML文字参照
HTMLエンティティの検索可能なリスト、その名称コードおよび数値コード、および特殊文字や記号のワンクリックコピー機能を提供します。
このツールは他の言語でも利用できます
- Trình tạo cấu hình webpack [VI]
- Webpack-konfigurationsgenerator [SV]
- مولّد إعدادات Webpack [AR]
- Webpack 설정 생성기 [KO]
- ตัวสร้างการตั้งค่า Webpack [TH]
- Générateur de configuration Webpack [FR]
- Generator Konfigurasi Webpack [ID]
- Webpack-Konfigurationsgenerator [DE]
- Webpack-configuratiegenerator [NL]
- Generador de Configuración de Webpack [ES]
- Generator konfiguracji webpack [PL]
- Gerador de Configuração Webpack [PT]
- Webpack Config Generator [EN]
- Generatore di Configurazione Webpack [IT]
- Генератор конфигурации webpack [RU]
- Webpack Yapılandırma Oluşturucu [TR]
- Webpack 配置生成器 [ZH]