GitHunt
JO

johncomposed/styled-jsx-plugin-postcss

Plugin to add PostCSS support to styled-jsx.

styled-jsx-plugin-postcss

Build Status
npm

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

Languages

JavaScript99.8%CSS0.2%
Created December 16, 2021
Updated December 16, 2021
johncomposed/styled-jsx-plugin-postcss | GitHunt