[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

时间: 2024-08-29 00:34:52

[Webpack + React] Import CSS Modules with TypeScript and webpack的相关文章

CSS Modules如何使用?

本文和大家分享的主要是CSS Modules的相关内容,一起来看看吧,希望对大家学习css有所帮助. 什么是css模块化? 为了理解css模块化思想,我们首先了解下,什么是模块化,在百度百科上的解释是,在系统的结构中,模块是可组合.分解和更换的单元.模块化是一种处理复杂系统分解成为更好的可管理模块的方式.它可以通过在不同组件设定不同的功能,把一个问题分解成多个小的独立.互相作用的组件,来处理复杂.大型的软件.看完模块化,是不是有种拼图的即视感,可以把大图分成各个小图,然后把小图拼成大图,分与合的

webpack+react+es6开发模式

一.前言 实习了两个月,把在公司用到的前端开发模式做个简单的整理.公司里前端开发模式webpack+react+redux+es6,这里去掉了redux. webpack, react, redux等学习网址:http://www.cnblogs.com/hujunzheng/p/5405780.html 二.简单的步骤条组件 1.通过react自定义的组件进行模拟   注:只是用了react,用到相关react的js请到 https://github.com/hjzgg/webpack-rea

CSS modules 与 React中实践

最近一直在学习React,看上去蛮简单的内容,其实学习曲线还是比较高的. 目前学到css绑定的问题,看到有一篇好的文章,就转过来了. CSS 模块化的解决方案有很多,但主要有两类.一类是彻底抛弃 CSS,使用 JS 或 JSON 来写样式.Radium, jsxstyle ,react-style 属于这一类.优点是能给 CSS 提供 JS 同样强大的模块化能力:缺点是不能利用成熟的 CSS 预处理器(或后处理器) Sass/Less/PostCSS, :hover 和 :active 伪类处理

从零配置webpack(react+less+typescript+mobx)

本文目标 从零搭建出一套支持react+less+typescript+mobx的webpack配置 最简化webpack配置 首页要初始化yarn和安装webpack的依赖 yarn init -y yarn add webpack webpack-cli -D 根目录下新建webpack.config.js文件,内容如下 const path = require('path'); module.exports = { mode: 'development', // 入口 这里应用程序开始执行

webpack react &#21333;&#29420;&#25171;&#21253; CSS

webpack react 单独打包 CSS webpack require css的方法,默认会把css 打入到js文件中,加载顺序有问题,如果需要打出独立的css文件 操作步骤: step1: 安装 webpack plugin 插件 npm install extract-text-webpack-plugin --save step2: 修改 webpack.config.js 配置 引用plugin var ExtractTextPlugin = require("extract-te

webpack+react+redux+es6

一.预备知识 node, npm, react, redux, es6, webpack 二.学习资源 ECMAScript 6入门 React和Redux的连接react-redux Redux 入门教程   redux middleware 详解   Redux研究 React 入门实例教程 webpack学习demo NPM 使用介绍 三.工程搭建 之前有写过 webpack+react+es6开发模式 ,文章里介绍了一些简单的配置,欢迎访问. 1.可以npm init, 创建一个新的工程

webpack+react+redux+es6开发模式

一.预备知识 node, npm, react, redux, es6, webpack 二.学习资源 ECMAScript 6入门 React和Redux的连接react-redux Redux 入门教程   redux middleware 详解   Redux研究 React 入门实例教程 webpack学习demo NPM 使用介绍 三.工程搭建 之前有写过 webpack+react+es6开发模式 ,文章里介绍了一些简单的配置,欢迎访问. 1.可以npm init, 创建一个新的工程

webpack学习之——模块(Modules)

在模块化编程中,开发者将程序分解成离散功能块(discrete chunks of functionality),并称之为模块. 每个模块具有比完整程序更小的接触面,使得校验.调试.测试轻而易举. 精心编写的模块提供了可靠的抽象和封装界限,使得应用程序中每个模块都具有条理清楚的设计和明确的目的. 什么是 webpack 模块 对比 Node.js 模块,webpack 模块能够以各种方式表达它们的依赖关系,几个例子如下: ES2015 import 语句: CommonJSrequire() 语

从零开始搭建webpack+react开发环境

环境主要依赖版本 [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] webpack安装及配置 1. 起步 新建项目目录,初始化npm,新建开发源目录 mkdir webpack-react && cd webpack-react npm init -y mkdir src 2.webpack