From 71d2bbd42a9bd07e2fe3604e135b04d820732a57 Mon Sep 17 00:00:00 2001 From: qiang Date: Mon, 1 Aug 2022 11:17:48 +0800 Subject: [PATCH] fix(mp): webpack5 use CssMinimizerPlugin --- packages/vue-cli-plugin-uni/lib/mp/index.js | 41 ++++++++++++--------- 1 file changed, 24 insertions(+), 17 deletions(-) diff --git a/packages/vue-cli-plugin-uni/lib/mp/index.js b/packages/vue-cli-plugin-uni/lib/mp/index.js index a88e10ca5..e14533250 100644 --- a/packages/vue-cli-plugin-uni/lib/mp/index.js +++ b/packages/vue-cli-plugin-uni/lib/mp/index.js @@ -300,23 +300,30 @@ ${globalEnv}.__webpack_require_UNI_MP_PLUGIN__ = __webpack_require__;` process.env.NODE_ENV === 'production' && process.env.UNI_PLATFORM !== 'app-plus' ) { - const OptimizeCssnanoPlugin = require('../../packages/@intervolga/optimize-cssnano-plugin/index.js') - webpackConfig.plugin('optimize-css') - .init((Plugin, args) => new OptimizeCssnanoPlugin({ - sourceMap: false, - filter (assetName) { - return path.extname(assetName) === styleExt - }, - cssnanoOptions: { - preset: [ - 'default', - Object.assign({}, getPlatformCssnano(), { - discardComments: true - }) - ] - } - - })) + // webpack5 不再使用 OptimizeCssnanoPlugin,改用 CssMinimizerPlugin + if (webpack.version[0] > 4) { + webpackConfig.optimization.minimizer('css').tap(args => { + args[0].test = new RegExp(`\\${styleExt}$`) + return args + }) + } else { + const OptimizeCssnanoPlugin = require('../../packages/@intervolga/optimize-cssnano-plugin/index.js') + webpackConfig.plugin('optimize-css') + .init((Plugin, args) => new OptimizeCssnanoPlugin({ + sourceMap: false, + filter (assetName) { + return path.extname(assetName) === styleExt + }, + cssnanoOptions: { + preset: [ + 'default', + Object.assign({}, getPlatformCssnano(), { + discardComments: true + }) + ] + } + })) + } } if (process.env.UNI_SUBPACKGE || process.env.UNI_MP_PLUGIN) { -- GitLab