Injects class map imported from css-modules into js.
Plugin respects webpack css-modules API and postcss config.
Requirements
- babel == 7, node >= 8.
Note. For babel@6 use previous version of plugin: 0.x.x - babel and postcss configs for best results
Installation & configuration
npm add -SD babel-plugin-transform-import-css
.babelrc example:
{
"sourceMaps": "inline",
"presets": [
"@babel/env",
"react"
],
"plugins": [
["transform-import-css", {
"generateScopedName": "lib-[name]-[local]-[hash:base64:4]"
}]
]
}
Every js file that has a statement such as:
import classes from './Component.css'
will be transpiled to:
var classes = {
root: 'lib-foo-root-SFs0',
}
require('load-styles')('.root{color:red}; ...some css...')
Api
generateScopedName
— css-modules scope template. Default: [name]__[local]___[hash:base64:5]
configPath
— postcss config path. Default: auto detectext
— postcss files' extension. Typical use: ext: '.pcss'
. Default: '.css'
Note. Plugin rely on some @babel/ peerDependencies, that are typically included in your project by @babel/core self.
Use Cases
Bundling the css with npm packed library of js/react components.
It is good for portability.
TODO
Alternatives
Russian Fintech startup