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

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']

 

转载于:https://www.cnblogs.com/Answer1215/p/8361472.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值