webpack.config.jsはwebpackを使う上での設定ファイルです。
今回は、webpack.config.jsの使い方を紹介します。
webpack.config.jsとは
webpack.config.jsは、webpackの設定ファイルです。
エントリーポイントや、ファイルの出力場所、プラグインなどを設定することができます。
webpack.config.jsの作成
まず、webpack.config.jsファイルを作成しておきましょう。
$ touch webpack.config.js
エントリーポイントの変更
エントリーポイントとは、プログラムの実行を開始する場所のことです。
デフォルトでは「./src/index.js」になります。
では、エントリーポイントを変更してみましょう。
webpack.config.js
module.exports = { entry: './js/script.js' };
上の例では、エントリーポイントを「./js/script.js」に変更しています。
出力先フォルダやファイル名の変更
デフォルトでの出力先は、「./dist/main.js」ですが、これを「./dest/bundle.js」に変更してみます。
webpack.config.js
module.exports = { entry: './js/script.js', output: { path: __dirname + '/dest', filename: 'bundle.js' } };
Loaderを使う
Loaderを使う方法です。
今回は例としてBabelを使ってみたいと思います。
まず、以下のコマンドでBabelをインストールします。
$ npm install babel-loader babel-core babel-preset-env --save-dev
webpack.config.jsは、以下のようにします。
webpack.config.js
module.exports = { entry: './js/script.js', output: { path: __dirname + '/dest', filename: 'bundle.js' }, module: { rules: [ { test: /\.js$/, exclude: /(node_modules | bower_components)/, use: { loader: 'babel-loader', options: { presets: ['env'] } } } ] } };
追加したのは7〜20行目です。
testプロパティは、変換するファイルを特定します。
正規表現で表しますので、「/\.js$/」というのは、「.js」で終わるファイル、つまりはJavaScriptファイルを表します。
excludeプロパティは、除外するファイルを指定します。
今回の例では、npmでインストールした時に作られる「node_modules」フォルダと、bowerでインストールした時に作られる「bower_components」フォルダを指定しています。
useプロパティは、変換に使うローダを指定します。
今回の例では、loaderにbabel-loaderを、optionsでオプションを指定しています。
プラグインを使う
プラグインを使ってみましょう。
今回は「html-webpack-plugin」を使ってみたいと思います。
このプラグインを使うと、コンパイル時にhtmlファイルが作られるようになります。
では実際に使ってみましょう。
$ npm install html-webpack-plugin --save-dev
webpack.config.js
const HtmlWebpackPlugin = require( 'html-webpack-plugin' ); module.exports = { entry: './js/script.js', output: { path: __dirname + '/dest', filename: 'bundle.js' }, module: { rules: [ { test: /\.js$/, exclude: /(node_modules | bower_components)/, use: { loader: 'babel-loader', options: { presets: ['env'] } } } ] }, plugins: [ new HtmlWebpackPlugin() ] };
追加したのは、1行目と23行目です。
このwebpack.config.jsの場合、destフォルダにindex.htmlファイルが作成されます。
modeを指定する
前々回のwebpackの記事では、modeはオプションを使って指定していましたが、webpack.config.jsで設定しておくこともできます。
const HtmlWebpackPlugin = require( 'html-webpack-plugin' ); module.exports = { entry: './js/script.js', output: { path: __dirname + '/dest', filename: 'bundle.js' }, mode: 'development', module: { rules: [ { test: /\.js$/, exclude: /(node_modules | bower_components)/, use: { loader: 'babel-loader', options: { presets: ['env'] } } } ] }, plugins: [ new HtmlWebpackPlugin() ] };
追加したのは9行目です。これで開発用のモードで出力されます。
まとめ
webpack.config.jsファイルはwebpackの設定ファイルです。
これを使うことで、webpackの様々な設定を行うことが可能です。
webpackにはまだまだ多くの機能がありますので、徐々に紹介していければと思います。
以上、webpack.config.jsの使い方でした。
参考ページ:webpack Concepts
このシリーズの一覧はこちら
- 【初心者向け】webpack入門。すぐに使える最も簡単な使い方
- webpackの設定ファイル「webpack.config.js」の使い方を覚えよう
- webpack-dev-serverの基本的な使い方と設定方法の詳しい解説