Nuxt/examples/with-purgecss/nuxt.config.js

45 lines
1.1 KiB
JavaScript

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']
}