Eliminates unused CSS rules. Built from the ground up for single-page apps. Inspired by purifycss and uncss.
- Parses the CSS with postcss and gonzales-pe and walks the AST to find the IDs, classes, and DOM types used in selectors.
- Parses HTML and JavaScript sources to find rule usage in strings and attributes, falling back to simple RegExp search when parsing fails.
- Removes rules whose selectors cannot be found in the source set.
npm install --save nukecss
constfs=require('fs')constnukecss=require('nukecss')constcss=fs.readFileSync('myfile.css')nukecss('./**/*.@(js|html)',css)// .js-class { color: white; }// .other-class { color: white; }// .still-works { color: white; }// #primary { color: white; }constjsignored="js-class other-class"constwoah=["still","works"].join("-").jsignored { color: white; }
.html-ignored { color: white; }
.js-class { color: white; }
.other-class { color: white; }
.still-works { color: white; }
#primary { color: white; }
#primary> .unused { color: white; }
.also-unused { color: white; }<html><body><divid="primary" class="html-class">html-ignored</div></body></html>