1. 程式人生 > >[Webpack + React] Import CSS Modules with TypeScript and webpack

[Webpack + React] Import CSS Modules with TypeScript and webpack

work case rate export pre loader and turned .get

If you try to use CSS Modules in TypeScript the same way you would use them in JavaScript, with webpack’s css-loader, you’ll see an error: ”TS2307: Cannot find module ‘./styles.css‘”. typings-for-css-modules-loader is a drop-in replacement for css-loader that works with TypeScript and generates typings for CSS on the fly.

You’ll need to install dependencies first:

npm install --save-dev css-loader typings-for-css-modules-loader

Webpack:

...
{
                test: /\.css$/,
                include: path.join(__dirname, src),
                use: [
                    style-loader,
                    {
                        loader: 
typings-for-css-modules-loader, options: { modules: true, namedExport: true, camelCase: true, }, }, ], }, ...

css:

.salmon-button {
    padding: 0.5em 1em;
    background: snow;
    color: salmon;
    border: 1px solid salmon;
    border-radius: 3px;
    font-size: 1.6em;
    font-weight: bold;
}

js:

With camelCase turned on in Webpack, we can do:

import * as styles from ‘./index.css‘;

const html = `<button class=${styles.salmonButton}>Click me!</button>`;
document.getElementById(‘app‘).innerHTML = html;

Instead of:

styles[‘salmon-button‘]

[Webpack + React] Import CSS Modules with TypeScript and webpack