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の基本的な使い方と設定方法の詳しい解説












