nukecss

1.9.1 • Public • Published

nukecss

NPM Package Build Status Coverage Status Commitizen friendly Dependencies

Eliminates unused CSS rules. Built from the ground up for single-page apps. Inspired by purifycss and uncss.

How It Works

  • 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.

Usage

npm install --save nukecss

nuke.js

const fs = require('fs')
const nukecss = require('nukecss')
const css = fs.readFileSync('myfile.css')
 
nukecss('./**/*.@(js|html)', css)
// .js-class { color: white; }
// .other-class { color: white; }
// .still-works { color: white; }
// #primary { color: white; }

myfile.js

const jsignored = "js-class other-class"
const woah = ["still", "works"].join("-")

myfile.css

.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; }

myfile.html

<html>
<body>
  <div id="primary" class="html-class">html-ignored</div>
</body>
</html>

Package Sidebar

Install

npm i nukecss

Weekly Downloads

3

Version

1.9.1

License

MIT

Unpacked Size

149 kB

Total Files

26

Last publish

Collaborators

  • patrickhulce