Auto transform css-modules's className for React with Vite.
You can use babel-plugin-react-css-modules to achieve the same effect.
But vite
does not use Babel by default. This plugin provide a hack way to use styleName in vite.
Fork from anjianshi/react-inline-css-module, but fix some errors.
- Only support vite
- Support import multiple css modules files
- Fix vite plugin type error
- Fix
styleName
order always afterclassName
.(Now follow your order which you set props) - Add some warnings when use. Like:
variable[${styleName}] is not defined!
- Remove unnecessary code, only trabsform code when
enforce: "post"
react-inline-css-module/src/index.ts at feature/vite-plugin · BanShan-Alec/react-inline-css-module
// vite.config.js
import reactStylename from 'vite-react-css-modules';
module.exports = {
...
plugins: [
reactStylename()
]
...
}
Two way to configure ts prompt
global.d.ts(Recommended)
/// <reference types="vite/client" />
/// <reference types="vite-react-css-modules/types/style-name" />
...
tsconfig.json
{
"compilerOptions": {
"types": ["vite-react-css-modules/types/style-name"]
}
}
Also work-well with
less
.app {
color: #777;
}
.info {
color: green;
}
import './style.module.css'
function App() {
return (
<div styleName="app">
<div>content</div>
<div styleName="info">info</div>
</div>
)
}