Purgecss
Getting Started
Installation
npm i --save-dev purgecss
Documentation
Usage
import Purgecss from "purgecss"
import purgeHtml from "purgecss-from-html"
const purgeCss = new Purgecss({
content: ["**/*.html"],
css: ["**/*.css"],
extractors: [
{
extractor: purgeHtml,
extensions: ["html"]
}
]
})
const result = purgecss.purge()
Build Plugin
Gulp
const gulp = require('gulp')
const purgecss = require('gulp-purgecss')
gulp.task('purgecss', () => {
return gulp.src('src/**/*.css')
.pipe(purgecss({
content: ["src/**/*.html"]
}))
.pipe(gulp.dest('build/css'))
})
Webpack
In progress
Rollup
import { rollup } from 'rollup';
import purgecss from 'rollup-plugin-purgecss';
rollup({
entry: 'main.js',
plugins: [
purgecss({
content: ["index.html"]
})
]
});
CLI
purgecss --css <css> --content <content> [option]
Options:
--con, --content glob of content files [array]
-c, --config configuration file [string]
-o, --out Filepath directory to write purified css files to [string]
-w, --whitelist List of classes that should not be removed
[array] [default: []]
-h, --help Show help [boolean]
-v, --version Show version number [boolean]
Contributing
Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to us.
Versioning
We use SemVer for versioning.
License
This project is licensed under the MIT License - see the LICENSE file for details
Troubleshooting
The extractors needs to be defined from the more specific to the less specific. Meaning that you need to define js
extractor after ejs
. So the js
extractor will not be selected for ejs files.
You can specified extensions like .es.js
.
Some unused css are not removed
If you are using the default or legacy extractor, look here.
Head over the repository of the extractor and open an issue.
Be as precise as possible when describing the issue, provide the
css file and content file if possible.