Socket
Socket
Sign inDemoInstall

babel-plugin-react-cssmoduleify

Package Overview
Dependencies
33
Maintainers
1
Versions
17
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    babel-plugin-react-cssmoduleify

Babel plugin to transform traditional classNames to CSS Modules


Version published
Weekly downloads
20
increased by566.67%
Maintainers
1
Install size
5.26 MB
Created
Weekly downloads
 

Readme

Source

babel-plugin-react-cssmoduleify

Build Status

Note: this plugin now requires Babel 6. To use the Babel 5 support ensure you continue using the pre 1.0 release.

For those who have tasted CSS Modules it is hard to imagine life without it. At Walmart we have a large number of core components that still use traditional CSS classNames and global CSS. This babel plugin is used to convert all global styles into CSS Modules to allow teams to opt-in to CSS Modules.

Previously this attempted to be rather aggressive in it’s resolving of className calls. The current implementation is much simpler and therefore should also support more use cases. Currently classNames must be a string, so we can take any complex assignment and do the lookup on the fly.

It detects the correct className calls in both JSX, React.createElement, and compiled JSX output.

Usage

  • npm install --save babel-plugin-react-cssmoduleify

.babelrc

{
  "plugins": [
    ["babel-plugin-react-cssmoduleify", {
      // this string is applied to the current path to transform or bail out.
      // This is because this plugin is often used on external code.
      "path": "node_modules/regex-path-"
      "cssmodule": "client/styles/base.styl"
      "modules": "es6",
      "log": true
    }]
  ],
}
Options:
  • path: string: string applied as a regex to each compiled file
  • cssmodule: string: path from process.cwd() to global CSS file
  • modules: "es6"|"commonjs" the type of module system cssmodule should be required as.
  • log: boolean log potentially unhandled cases. Default to false.

Examples

Look at the unit tests.

Caveats

This assumes that you can get all exports into one file. Most CSS Preprocessors build on the global nature of CSS and have their own internal global worlds. Importing all of your traditional files into a single file in Stylus or Sass will likely accomplish this.

MIT License

Copyright (c) 2015 Walmart Labs

Keywords

FAQs

Last updated on 21 Jul 2016

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc