Skip to content

Instantly share code, notes, and snippets.

@tuliocll
Forked from martsie/package.json
Created March 25, 2021 20:00
Show Gist options
  • Save tuliocll/242680f1a04ffed821aedad15bab99dd to your computer and use it in GitHub Desktop.
Save tuliocll/242680f1a04ffed821aedad15bab99dd to your computer and use it in GitHub Desktop.
Purge CSS in Create React App without ejecting
{
"name": "my-app",
"version": "0.1.0",
"private": true,
"dependencies": {
"react": "^16.8.6",
"react-dom": "^16.8.6",
"react-scripts": "3.0.1"
},
"devDependencies": {
"purgecss": "^1.3.0"
},
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build && npm run purge-css",
"purge-css": "node ./purge-css",
"test": "react-scripts test",
"eject": "react-scripts eject"
},
"eslintConfig": {
"extends": "react-app"
},
"browserslist": {
"production": [
">0.2%",
"not dead",
"not op_mini all"
],
"development": [
"last 1 chrome version",
"last 1 firefox version",
"last 1 safari version"
]
}
}
const Purgecss = require('purgecss');
const fs = require('fs');
const purgecss = new Purgecss({
content: ['build/static/js/*.js'],
css: ['build/static/css/*.css']
})
const purgecssResult = purgecss.purge();
purgecssResult.forEach((result) => {
const file = result.file;
const css = result.css;
fs.stat(file, (error, originalFileStats) => {
console.log(originalFileStats);
fs.writeFileSync(file, css);
const newFileStats = fs.statSync(file);
console.log('\x1b[32m', `Purge CSS saved ${Math.round((originalFileStats.size - newFileStats.size) / 1000)}kb on ${file}`);
});
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment