toolz/config/purgecss.mjs
Eduard Ursu 400ca5533d 3.1.0
closes #89
closes #80
closes #78
- Updated hosts list
- Added rules to .adblock file
- Removed partner.ads script
- Cosmetic and script tests set to 1 point each
- Improved hosts test with fake 404 page
2024-02-10 13:56:25 +01:00

36 lines
1,007 B
JavaScript

import { PurgeCSS } from 'purgecss'
import path from 'path'
import config from './config.js' // Make sure the config file is also compatible with ESM
import fs from 'fs'
import chalk from 'chalk'
const pages = config.pages
const options = pages.map((page) => {
const css = path.join(config.build, `css/${page}.css`)
const content = [
path.join(config.build, `${page}.html`),
path.join(config.build, `js/${page}.js`)
]
return {
css: [css],
content: content
}
})
Promise.all(options.map((option) => new PurgeCSS().purge(option))).then(
(results) => {
results.forEach((result, i) => {
const css = result[0].css
const cssFile = path.join(config.build, `css/${pages[i]}.css`)
console.log(chalk.green(`File: ${cssFile}`))
console.log(
`Original size: ${(
fs.statSync(path.join(config.build, `css/${pages[i]}.css`))
.size / 1024
).toFixed(2)}KB`
)
console.log(`Optimized size: ${(css.length / 1024).toFixed(2)}KB`)
fs.writeFileSync(cssFile, css)
})
}
)