feat: add post-css plugins (#42)

This commit is contained in:
Shawn
2018-12-20 23:58:11 +08:00
committed by Adam Rackis
parent 75878189d6
commit 95ea50c8a1
2 changed files with 37 additions and 1 deletions

View File

@@ -250,6 +250,23 @@ const disableChunk = () => config => {
return config;
};
const addPostcssPlugins = (plugins) => config => {
const rules = config.module.rules.find(rule => Array.isArray(rule.oneOf))
.oneOf;
rules.forEach(r => r.use && r.use.forEach(u => {
if (u.options && u.options.ident === "postcss") {
if (!u.options.plugins) {
u.options.plugins = () => [...plugins];
}
if (u.options.plugins) {
const originalPlugins = u.options.plugins;
u.options.plugins = () => [...originalPlugins(), ...plugins];
}
}
}));
return config;
}
module.exports = {
override,
addBundleVisualizer,
@@ -269,5 +286,6 @@ module.exports = {
babelInclude,
addBabelPreset,
addBabelPresets,
disableChunk
disableChunk,
addPostcssPlugins
};

View File

@@ -317,3 +317,21 @@ To use it, just apply it and run the dev server with `yarn start --watch-all`.
```js
watchAll();
```
### add post-css plugins
To add post-css plugins, you can use `addPostcssPlugins`.
```js
const {
override,
addPostcssPlugins
} = require("customize-cra");
module.exports = override(
addPostcssPlugins([
require('postcss-px2rem')({ remUnit: 37.5 })
]),
);
```