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

 

posted @   Zhentiw  阅读(483)  评论(0编辑  收藏  举报
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
历史上的今天:
2017-01-26 [Node.js] Build microservices in Node.js with micro
2017-01-26 [Angular] Scrolling the Message List To the Bottom Automatically Using OnChanges
2017-01-26 [Angular] Ngrx/effects, Action trigger another action
2016-01-26 [Javascript] Task queue & Event loop.
2016-01-26 [Javascript] Call Stack
2016-01-26 [Cycle.js] The Cycle.js principle: separating logic from effects
点击右上角即可分享
微信分享提示