目次
はじめに
以下の記事を参考に、DockerとWebPackを使用したプロジェクトを用意してください。
既にプロジェクトがある場合は、適時読み替えてください。
package.jsonで環境を定義する
「webpack-dev-server」の前に環境情報を保持する定数を定義します。
以下では、「ENV」の定数に「development」と「production」を設定しています。
"scripts": {
"start": "ENV=development webpack-dev-server --config webpack.config.js --port 3000 --progress --profile --static src/",
"production": "ENV=production webpack-dev-server --config webpack.config.js --port 3000 --progress --profile --static src/",
},
WebPackの修正
修正前は以下のような「webpack.config.js」の定義でした。
const path = require("path");
const HtmlWebpackPlugin = require("html-webpack-plugin");
const { LoaderOptionsPlugin } = require("webpack");
module.exports = () => {
return {
~~~~~WebPackの定義~~~~~
}
}
「webpack.config.js」を以下のように修正してください。
※ポイントとしては、「webpack-merge」を使用して、別ファイルをマージしています。
const path = require("path");
const webpackMerge = require("webpack-merge");
const HtmlWebpackPlugin = require("html-webpack-plugin");
const { LoaderOptionsPlugin } = require("webpack");
const environment = process.env.ENV || "development";
module.exports = () => {
return webpackMerge.merge(require("./" + environment + ".js")(environment), {
~~~~~WebPackの定義(共通の部分)~~~~~
}
}
「webpack.config.js」と同じ階層に「development.js」「production.js」を作成し、それぞれ以下のように記載します。
「development.js」の記載
const webpack = require("webpack");
module.exports = (env) => {
return {
~~~~~WebPackの定義(開発環境)~~~~~
};
};
「production.js」の記載
const webpack = require("webpack");
module.exports = (env) => {
return {
~~~~~WebPackの定義(本番環境)~~~~~
};
};