我刚刚开始学习webpack 4,并且成功地设置了漂亮的babel。我观看了一个高级的CSS和SASS课程,该课程的老师使用node-sass,postcss-cli和autoprefixer软件包从sass文件构建了最小化的,可用于生产环境的CSS文件。
我想通过webpack 4实现此目的。我找到了MiniCssExtractPlugin包并进行了设置,但是当我在开发模式下运行webpack(与生产模式相同)时,它将创建一个style.css文件和一个stlye。 .js文件。可以将其配置为不生成其他JavaScript文件吗?另一个问题是,是否可以运行此webpack css生成器而无需在我的主要JavaScript文件中导入scss文件?
否则,使用webpack还是一个好习惯,还是有一个更好的软件包?
我的webpack.config.js文件:
const HtmlWebpackPlugin = require('html-webpack-plugin');
const MiniCssExtractPlugin = require("mini-css-extract-plugin");
const OptimizeCSSAssetsPlugin = require("optimize-css-assets-webpack-plugin");
module.exports = {
optimization: {
splitChunks: {
cacheGroups: {
styles: {
name: 'style',
test: /\.scss$/,
chunks: 'all',
enforce: true
}
}
},
minimizer: [new OptimizeCSSAssetsPlugin({})],
},
plugins: [
new HtmlWebpackPlugin({
filename: 'index.html',
template: './src/index.html',
}),
new MiniCssExtractPlugin({
filename: "[name].css",
})
],
module: {
rules: [
{
test: /\.scss$/,
use: [
process.env.NODE_ENV !== 'production' ? 'style-loader' : MiniCssExtractPlugin.loader,
/* "style-loader", */
"css-loader",
{
loader: 'postcss-loader',
options: {
plugins: () => [require('autoprefixer')]
}
},
"sass-loader"
]
}
]
}
}