Nuxt PurgeCSS - Drop superfluous CSS!
Features
- Remove unneeded CSS with ease
- Sane default settings
- Built on top of purgecss
- Nuxt 2 and Nuxt 3 support (Use v1.0.0 for Nuxt2 support for now)
- Fully tested!
Setup
- Add
nuxt-purgecss
dependency to your project
yarn add --dev nuxt-purgecss # or npm install --save-dev nuxt-purgecss
- Add
nuxt-purgecss
to themodules
section ofnuxt.config.{js,ts}
export default {
modules: [
// Simple usage
'nuxt-purgecss',
// With options
['nuxt-purgecss', { /* module options */ }],
]
}
⚠️ If you are using Nuxt 2, please use version 1 of the module.
Options
Defaults
Before diving into the individual attributes, please have a look at the default settings of the module.
The defaults will scan all your .vue
, .js
and .ts
files in the common Nuxt folders, as well as checking your nuxt.config.js
(or .ts
) for used classes.
Furthermore, typical classes (like these needed for transitions, the nuxt link ones or those set when using scoped styles) are whitelisted already.
These settings should be a good foundation for a variety of projects.
Properties in-depth
enabled
- Type:
Boolean
- Default:
!nuxt.options.dev
(Disabled duringnuxt dev
, enabled otherwise)
Enables the module when set to true
.
PurgeCSS options
Please read the PurgeCSS docs for information about PurgeCSS-related information.
Examples
Default setup
// nuxt.config.js
export default {
modules: [
'nuxt-purgecss',
]
}
Customize options
//nuxt.config.js
export default {
modules: [
'nuxt-purgecss',
],
purgecss: {
enabled: true, // Always enable purgecss
safelist: ['my-class'], // Add my-class token to the safelist (e.g. .my-class)
}
}
Caveats
- Don't forget to add paths to pages and components that are not part the common folders (e.g. third party packages)
- The default generated 500 and 404 pages will be purged by default. Please ensure you have an appropriate error layout
- Do not use the old
>>>
or::v-deep
syntax. Instead, go for:deep
Migrating from v1.x
⚠️ If you use Nuxt 2, you can't update to v2.x (yet?)
- The webpack mode has been removed, as Nuxt 3 supports Vite and webpack. This way, the logic is unified to use the PostCSS plugin of PurgeCSS. There is no
mode
anymore - The config merging logic of v1 has been removed in favor of using
defu
. Instead of using functions, write your values as usual and they will be merged. - PurgeCSS has been bumped from v2.x to v5.x - Please check the current config options
- Change the module key has been changed to just
purgecss
. - In addition to
enabled
, all purgecss configurations can be written directly into thepurgecss
object. - Eventually, check out the playground of the module and the [current defaults](at the default settings)!
License
Copyright (c) Alexander Lichter