1.0.1-zumper.1 • Published 5 years ago

@zumper/dts-isomorphic-styles-loader v1.0.1-zumper.1

Weekly downloads
-
License
MIT
Repository
github
Last release
5 years ago

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.