Skip to content

giuseppeg/styled-jsx-plugin-postcss

Repository files navigation

Image for: Repository files navigation

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

Image for: Supporters

Companies and individuals who sponsored some work on this library:

🥇 @swissredcross

Usage

Image for: 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

Image for: 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

Image for: 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

Image for: Contributions

PRs and contributions are welcome!

We aim to drive development of this plugin through community contributions.

License

Image for: License

MIT

About

Image for: About

Plugin to add PostCSS support to styled-jsx.

Topics

Resources

Stars

Watchers

Forks

Sponsor this project

Image for: Sponsor this project
 

Packages

Image for: Packages 0
No packages published

Contributors 11

Image for: Contributors 11