Webpack loader for removing unused CSS
npm install @americanexpress/purgecss-loader

!Health Check
> This Webpack loader uses purgecss
to strip unused selectors from your CSS.
> Want to get paid for your contributions to purgecss-loader?
> Send your resume to oneamex.careers@aexp.com
* Features
* Usage
* API
* License
* Code Of Conduct
* Contributing
* Ability to remove CSS modules
* Ability to remove plain CSS declarations
* Reduce bundle size
```
npm install -D @americanexpress/purgecss-loader
`js`
module.exports = {
entry: {...},
output: {...},
module: {
rules: [
{
test: /\.css$/,
use: [
{
loader: 'css-loader',
options: {
modules: true,
localIdentName: '[name]__[local]___[hash:base64:5]',
},
},
{
loader: '@americanexpress/purgecss-loader',
options: {
paths: [path.join(somePath, 'src/*/.{js,jsx}')],
safelist: [/:global$/],
},
},
],
},
],
},
}
You should use this with the css-loader
as seen above. However, it is not required that you use CSS modules. That is in
the example to express this loader's compatibility.
| Property | Description | Required |
|-----------------|-----------------------------------|----------|
| paths | An array of file [glob] patterns | true |extractors
| | An array of [purgecss extractors] | false |fontFace
| | boolean (default: false) see [options] | false |keyframes
| | boolean (default: false) see [options] | false |variables
| | boolean (default: false) see [options] | false |safelist
| | UserDefinedSafelist see [options]| false |blocklist
| | StringRegExpArray see [options] | false` |
[glob]: https://github.com/isaacs/node-glob
[purgecss extractors]: https://www.purgecss.com/extractors.html
[options]: https://purgecss.com/configuration.html#options
Any contributions made under this project will be governed by the
Apache License 2.0.
This project adheres to the American Express Community Guidelines.
By participating, you are expected to honor these guidelines.
We welcome Your interest in the American Express Open Source Community on Github.
Any Contributor to any Open Source Project managed by the American Express Open
Source Community must accept and sign an Agreement indicating agreement to the
terms below. Except for the rights granted in this Agreement to American Express
and to recipients of software distributed by American Express, You reserve all
right, title, and interest, if any, in and to Your Contributions. Please fill
out the Agreement.
Please feel free to open pull requests and see CONTRIBUTING.md
for commit formatting details.