JavaScriptはサーバーとブラウザの両方で記述できるため、webpackはwebpack 設定で設定できる複数のデプロイメントターゲットを提供します。
target
プロパティを設定するには、webpack設定でターゲット値を設定します
webpack.config.js
module.exports = {
target: 'node',
};
上記の例では、node
を使用すると、webpackはNode.jsのような環境での使用のためにコンパイルされます(Node.jsのrequire
を使用してチャンクをロードし、fs
やpath
などの組み込みモジュールには触れません)。
各ターゲットには、そのニーズに合わせて様々なデプロイメント/環境固有の追加機能とサポートがあります。利用可能なターゲットを確認してください。
webpackはtarget
プロパティに複数の文字列を渡すことをサポートしていませんが、2つの別々の設定をバンドルすることで、アイソモルフィックライブラリを作成できます
webpack.config.js
const path = require('path');
const serverConfig = {
target: 'node',
output: {
path: path.resolve(__dirname, 'dist'),
filename: 'lib.node.js',
},
//…
};
const clientConfig = {
target: 'web', // <=== can be omitted as default is 'web'
output: {
path: path.resolve(__dirname, 'dist'),
filename: 'lib.js',
},
//…
};
module.exports = [serverConfig, clientConfig];
上記の例では、dist
フォルダにlib.js
とlib.node.js
ファイルが作成されます。
上記オプションからわかるように、選択できるデプロイメントターゲットは複数あります。以下は、参照できる例とリソースのリストです。