From 8dcfab79cb7f969d33539233426686a3a2aaae1a Mon Sep 17 00:00:00 2001 From: MarcoGlauser Date: Fri, 25 Sep 2020 16:03:04 +0100 Subject: [PATCH] update webpack config to work with current dependencies change purgecss extractor to tailwind recommendation fix CopyWebpackPlugin configuration syntax --- webpack.config.js | 35 ++++++++++++++++------------------- 1 file changed, 16 insertions(+), 19 deletions(-) diff --git a/webpack.config.js b/webpack.config.js index fc0357e..d881172 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -35,16 +35,15 @@ if ( isProduction ) { css: [ './node_modules/tailwindcss/dist/base.css' ], - extractors: [ - { - extractor: class TailwindExtractor { - static extract(content) { - return content.match(/[A-Za-z0-9-_:\/]+/g) || []; - } - }, - extensions: ['php', 'js', 'svg', 'css',] - } - ], + defaultExtractor: content => { + // Capture as liberally as possible, including things like `h-(screen-1.5)` + const broadMatches = content.match(/[^<>"'`\s]*[^<>"'`\s:]/g) || [] + + // Capture classes within other delimiters like .block(class="w-1/2") in Pug + const innerMatches = content.match(/[^<>"'`\s.()]*[^<>"'`\s.():]/g) || [] + + return broadMatches.concat(innerMatches) + }, whitelistPatterns: getCSSWhitelistPatterns() }) ) @@ -87,7 +86,6 @@ const config = { loader: 'css-loader', options: { importLoaders: 1, - context: 'postcss', sourceMap: ! isProduction } }, @@ -113,13 +111,12 @@ const config = { new MiniCssExtractPlugin({ filename: `[name]${prefix}.css`, }), - new CopyWebpackPlugin([{ - from: './assets/images/', - to: 'images', - ignore: [ - '.DS_Store' - ] - }]), + new CopyWebpackPlugin({ + patterns: [{ + from: './assets/images/', + to: 'images', + }] + }), new ImageminPlugin({ test: /\.(jpe?g|png|gif|svg)$/i }) ] } @@ -180,4 +177,4 @@ function getCSSWhitelistPatterns() { ]; } -module.exports = config \ No newline at end of file +module.exports = config