Skip to content

Commit 5f9cd1f

Browse files
authored
Merge pull request olegstepura#9 from Zalastax/PR-3
Emit exports.locals and update README
2 parents 0906a00 + de2a8fa commit 5f9cd1f

6 files changed

+8
-10
lines changed

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,8 @@ export const foo: string;
5555
export const barBaz: string;
5656
```
5757

58+
`css-loader` exports mappings to `exports.locals` which is incompatible with the `namedExport`-option unless paired with `extract-text-webpack-plugin` or `style-loader`. They move the exported properties from `exports.locals` to `exports` making them reuired for `namedExport` to work, and `namedExport` required for them to work. *Always combine usage of `extract-text-webpack-plugin` or `style-loader` with the `namedExport`-option.*
59+
5860
## Usage
5961

6062
Keep your `webpack.config` as is just instead of using `css-loader` use `typings-for-css-modules-loader`

src/cssModuleToInterface.js

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,8 +47,7 @@ export const generateGenericExportInterface = (cssModuleKeys, filename, indent)
4747
`export interface ${interfaceName} {
4848
${interfaceProperties}
4949
}
50-
declare const styles: ${interfaceName};
5150
52-
export default styles;
51+
export const locals: ${interfaceName};
5352
`);
5453
};

test/entry.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
import stylesBase from './example.css';
2-
import stylesCamelCase from './example-camelcase.css';
1+
import {locals as stylesBase} from './example.css';
2+
import {locals as stylesCamelCase} from './example-camelcase.css';
33
import * as stylesNamedExport from './example-namedexport.css';
44
import * as stylesCamelCasedNamedExport from './example-camelcase-namedexport.css';
55

test/example-camelcase.css.d.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,5 @@ export interface IExampleCamelcaseCss {
33
'bar-baz': string;
44
'barBaz': string;
55
}
6-
declare const styles: IExampleCamelcaseCss;
76

8-
export default styles;
7+
export const locals: IExampleCamelcaseCss;

test/expected-example-camelcase.css.d.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,5 @@ export interface IExampleCamelcaseCss {
33
'bar-baz': string;
44
'barBaz': string;
55
}
6-
declare const styles: IExampleCamelcaseCss;
76

8-
export default styles;
7+
export const locals: IExampleCamelcaseCss;

test/expected-example.css.d.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,5 @@ export interface IExampleCss {
22
'foo': string;
33
'bar-baz': string;
44
}
5-
declare const styles: IExampleCss;
65

7-
export default styles;
6+
export const locals: IExampleCss;

0 commit comments

Comments
 (0)