Version Webpack: 4.16.3
Toute compilation est réussie.
Mon code après compilation dans bundle.css n'est pas minify.
J'essaie d'utiliser minimiser: vrai dans text-webpack-plugin, mais cela ne fonctionne pas.
Pour la compilation, j'utilise la commande en ligne de commande: webpack dans mon répertoire de travail
Qu'est-ce que je fais mal?
Ma configuration wepback:
'use strict'
const webpack = require("webpack");
const ExtractTextPlugin = require('extract-text-webpack-plugin')
module.exports = {
context: __dirname,
mode: 'production',
entry: __dirname + "/js/init.js",
output: {
path: __dirname + "/dist",
filename: "bundle.js"
},
plugins: [
new webpack.ProvidePlugin({
$: "jquery",
jQuery: "jquery",
noUiSlider: 'nouislider',
Vue: 'vue'
}),
new ExtractTextPlugin("bundle.css")
],
module: {
'rules': [
{
test: /\.css$/,
use: ExtractTextPlugin.extract({
fallback: "style-loader",
use: {
loader: "css-loader",
options: {
minimize: true
}
}
})
}
, {
test: /\.less$/,
use: ExtractTextPlugin.extract({
fallback: "style-loader",
use: {
loader: "css-loader!less-loader",
}
})
}, {
test: /\.(png|jpe?g|gif|cur)$/,
loader: 'url-loader?limit=8192&name=imgs/[name]-[hash].[ext]'
}
]
}
};
Avec la version Webpack supérieure à 4, vous pouvez utiliser mini-css-extract-plugin au lieu de ExtractTextPlugin
brancher
Utilisez OptimizeCSSAssetsPlugin pour réduire les ressources CSS, les extracteurs sont utilisés pour séparer uniquement les ressources de sortie. Notez que la minification fonctionne avec le mode de production, c'est-à-dire assurez-vous de passer "--mode production" dans la commande de construction de webpack.
{....,
optimization: {
minimizer: [
//Incase you want to uglify/minify js
new UglifyJsPlugin({
cache: true,
parallel: true,
sourceMap: true
}),
new OptimizeCSSAssetsPlugin({
cssProcessorOptions: { discardComments: { removeAll: true } },
canPrint: true
})
]
}
....}
Vous devriez utiliser ce plugin à la place.
Voici ma config. Je pense que vous abusez de use
const MiniCssExtractPlugin = require("mini-css-extract-plugin");
{....,
test: /\.(scss|sass)$/,
use: [
process.env.NODE_ENV !== 'production' ? 'style-loader' : MiniCssExtractPlugin.loader, // creates style nodes from JS strings
{// translates CSS into CommonJS
loader: 'css-loader',
options: {
importLoaders: 1,
minimize: true
}
},
'postcss-loader',
"sass-loader" // compiles Sass to CSS
]
}