webpack.config.js 👇
module.exports = {
mode: "development",
}
console.log(process.env.NODE_ENV);
<title>검색<%= env %></title>
=> Title(개발용)
webpack.config.js 👇
const HtmlWebpackPlugin = require("html-webpack-plugin");
plugins: [
new HtmlWebpackPlugin({
template: './src/index.html', // 템플릿 경로를 지정
templateParameters: { // 템플릿에 주입할 파라미터 변수 지정
env: process.env.NODE_ENV === 'development' ? '(개발용)' : ''
},
minify: process.env.NODE_ENV === 'production' ? {
collapseWhitespace: true, // 빈칸 제거
removeComments: true // 주석 제거
} : false
})
]
webpack.config.js 👇
const { CleanWebpackPlugin } = require("clean-webpack-plugin");
new CleanWebpackPlugin ()
webpack.config.js 👇
const MiniCssExtractPlugin = require("mini-css-extract-plugin");
module: {
rules: [
{
test: /\.css$/,
use: [
process.env.NODE_ENV === 'production'
? MiniCssExtractPlugin.loader // 프로덕션 환경
: "style-loader", // 개발 환경
"css-loader"
]
}
]
}
...(process.env.NODE_ENV === 'production' // 프로덕션 환경일 경우만 이 플러그인을 추가
? [new MiniCssExtractPlugin({filename: '[name].css'})]
: []
)
** MiniCssExtractPlugin.loader : 개발 환경에서는 css-loader에의해 자바스크립트 모듈로 변경된 스타일시트를 적용하기위해 style-loader를 사용. 프로덕션 환경에서는 별도의 CSS 파일으로 추출하는 플러그인을 적용했으므로 다른 로더가 필요