dts-css-modules-loader
Replacement for the typings-for-css-modules-loader. This loader does not make any changes in content of styles, just creates *.d.ts
file during the work. It is assumed that the content will be preprocessed first by css-loader.
Installation
npm i -D dts-css-modules-loader
# or
yarn add -D dts-css-modules-loader
Usage
{
test: /\.scss$/,
use: [
{
loader: 'dts-css-modules-loader',
options: {
namedExport: true,
banner: "// This file is generated automatically"
}
},
{
loader: 'css-loader',
options: {
modules: true, // this option must be enabled
camelCase: 'only',
localIdentName: '[local]',
exportOnlyLocals: true
}
},
'sass-loader'
]
}
Options
namedExport
When the option is switched on classes exported as variables. Be sure you using camelCase
option of css-loader to avoid invalid name of variables.
// This file is generated automatically.
export const button: string;
export const buttonActive: string;
When option is off:
// This file is generated automatically.
export interface I_buttonScss {
'button': string
'buttonActive': string
}
declare const styles: I_buttonScss;
export default styles;
banner
Adds a "banner" prefix to each generated file.
Usage in Typescript
import * as styles from './_button.scss';
To avoid errors about the absent module, you need to determine this:
/**
* Trap for `*.scss.d.ts` files which are not generated yet.
*/
declare module '*.scss' {
var classes: any;
export = classes;
}
When you add new classname Typescript compiler may not find the generated variable so you need to compile twice your files.
License
Licensed under the MIT license.