CSS 파일 개별 추출
CSS 파일 추출 플러그인
npm i mini-css-extract-plugin -Dconst MiniCssExtractPlugin = require('mini-css-extract-plugin');
module.exports = {
plugins: [
// 플러그인 인스턴스 생성
new MiniCssExtractPlugin({
// 플러그인 옵션 설정
linkType: false, // 기본 값 'text/css'
}
})
],
module: {
rules: [
{
test: /\.css$/i,
// CSS Loader → MiniCssExtractPlugin.loader 로더를 사용해 추출
use: [MiniCssExtractPlugin.loader, 'css-loader'],
}
]
}
}모드 별, 플러그인 설정
const webpack = require('webpack')
const MiniCssExtractPlugin = require('mini-css-extract-plugin')
/* -------------------------------------------------------------------------- */
// 개발 모드 감지
const isDevMode = process.env.NODE_ENV.includes('dev')
/* -------------------------------------------------------------------------- */
// 개발,배포 모든 모드에서 사용되는 Webpack 플러그인 목록(배열)
const plugins = [
new webpack.EnvironmentPlugin({
NODE_ENV: 'development',
}),
]
// 배포 모드인 경우 plugins에 배포용 플러그인 추가
if (!isDevMode) {
plugins.push(
new MiniCssExtractPlugin({
linkType: false,
filename: '[name].[contenthash].css',
chunkFilename: '[id].[contenthash].css',
})
)
}
/* -------------------------------------------------------------------------- */
module.exports = {
// 플러그인 설정
plugins,
module: {
rules: [
// 스타일 파일 로더
{
test: /\.(sa|sc|c)ss$/i,
exclude: /node_modules/,
use: [
isDevMode ? 'style-loader' : MiniCssExtractPlugin.loader,
'css-loader',
'sass-loader',
],
},
// ...
],
},
// ...
}
참고
Last updated