import path from 'path' import PurgecssPlugin from 'purgecss-webpack-plugin' import glob from 'glob-all' class TailwindExtractor { static extract(content) { return content.match(/[A-z0-9-:/]+/g) || [] } } export default { build: { extractCSS: true, postcss: { plugins: { tailwindcss: path.resolve('./tailwind.js') }, preset: { autoprefixer: { grid: true } } }, extend(config, { isDev }) { if (!isDev) { config.plugins.push( new PurgecssPlugin({ // purgecss configuration // https://github.com/FullHuman/purgecss paths: glob.sync([ path.join(__dirname, './pages/**/*.vue'), path.join(__dirname, './layouts/**/*.vue'), path.join(__dirname, './components/**/*.vue') ]), extractors: [ { extractor: TailwindExtractor, extensions: ['vue'] } ], whitelist: ['html', 'body', 'nuxt-progress'] }) ) } } }, css: ['~/assets/css/tailwind.css'] }