webpackのoutput
プロパティは、バンドルされたファイルの出力先やファイル名を指定するために使用します。これにより、生成されたファイルの管理が容易になり、必要に応じて適切な場所に配置できます。
以下では、output
プロパティの使い方について詳しく解説します。
目次
基本的な設定
output
プロパティは、webpackの設定ファイル内で次のように指定します。
const path = require('path');
module.exports = {
output: {
path: path.resolve(__dirname, 'dist'), // 出力先のディレクトリを絶対パスで指定
filename: 'bundle.js' // 出力するファイル名
}
}
webpack.config.jspath
プロパティに設定する出力先ディレクトリは、絶対パスで指定する必要があります。相対パスで指定すると、webpackでエラーが発生します。
上記の設定では、バンドルされたファイルがdist
ディレクトリにbundle.js
として出力されます。
動的なファイル名
ファイル名を動的に設定することも可能です。例えば、[name]
を使うことでエントリーポイントの名前を基にしたファイル名を指定することができます。
const path = require('path');
module.exports = {
entry: {
sub1: './src/sub1.js',
sub2: './src/sub2.js'
},
output: {
path: path.resolve(__dirname, 'dist'),
filename: '[name].bundle.js' // エントリーポイント名に基づいたファイル名
}
}
webpack.config.js上記の設定では、entry
オブジェクト内のプロパティがsub1
とsub2
なので、出力ファイルはsub1.bundle.js
とsub2.bundle.js
となります。
キャッシュバスティング
ファイル名に[contenthash]
を追加することで、ファイルの内容が変更されたときにのみ新しいファイル名が生成されるようになります。これにより、ブラウザキャッシュの問題を回避できます。
const path = require('path');
module.exports = {
output: {
path: path.resolve(__dirname, 'dist'),
filename: 'bundle.[contenthash].js' // ファイル名にハッシュを付与する
}
}
webpack.config.js上記の設定では、バンドルされたファイルがdist
ディレクトリに出力されます。ファイル名には、英数字のハッシュ値が付与されています。