styled-jsx-plugin-postcss
Use PostCSS with
styled-jsx 💥
⚠️ This plugin is not actively being maintained. If you want me to work on it please consider donating.
Supporters
Companies and individuals who sponsored some work on this library:
🥇 @swissredcross
Usage
Install this package first.
npm install --save styled-jsx-plugin-postcss
Next, add styled-jsx-plugin-postcss
to the styled-jsx
's plugins
in your
babel configuration:
{
"plugins": [
["styled-jsx/babel", { "plugins": ["styled-jsx-plugin-postcss"] }]
]
}
With config:
{
"plugins": [
[
"styled-jsx/babel",
{
"plugins": [
[
"styled-jsx-plugin-postcss",
{
"path": "[PATH_PREFIX]/postcss.config.js",
"compileEnv": "worker"
}
]
]
}
]
]
}
compileEnv
When using Node.js v12.3.0 and above the plugin defaults to compiling using a worker thread instead of a child process. This results in faster builds.
If for any reason you want to force compiling using a child process (slower) you can register the plugin with the config option compileEnv
set to process
.
Example with CRA
Usage with Create React App requires you to either eject or use react-app-rewired.
Here is an example using react-app-rewired
:
// config-overrides.js
// this file overrides the CRA webpack.config
const { getBabelLoader } = require("react-app-rewired");
module.exports = function override(config, env) {
const loader = getBabelLoader(config.module.rules);
// Older versions of webpack have `plugins` on `loader.query` instead of `loader.options`.
const options = loader.options || loader.query;
options.plugins = [
[
"styled-jsx/babel",
{
plugins: ["styled-jsx-plugin-postcss"],
},
],
].concat(options.plugins || []);
return config;
};
Note: Please follow their instructions on how to set up build & test scripts, and make sure you have a correctly formatted postcss.config.js
as well.
Notes
styled-jsx-plugin-postcss
uses styled-jsx
's plugin system which is supported
from version 2. Read more on their repository for further info.
Plugins
styled-jsx-plugin-postcss
uses
postcss-load-config
therefore you may want to refer to their docs to learn more about
adding plugins.
Contributions
PRs and contributions are welcome!
We aim to drive development of this plugin through community contributions.
License
MIT