javascript - CSS modules 导出的模块是空对象吗?
问题描述
我使用 typescript 并create-react-app
创建项目并添加typings-for-css-modules-loader
和打开css-modules
.
{
test: /\.css$/,
use: [
require.resolve('style-loader'),
{
loader: require.resolve('typings-for-css-modules-loader'),
options: {
modules: true,
namedExport: true,
camelCase: true,
},
},
{
loader: require.resolve('postcss-loader'),
options: {
// Necessary for external CSS imports to work
// https://github.com/facebookincubator/create-react-app/issues/2677
ident: 'postcss',
plugins: () => [
require('postcss-flexbugs-fixes'),
autoprefixer({
browsers: [
'>1%',
'last 4 versions',
'Firefox ESR',
'not ie < 9', // React doesn't support IE8 anyway
],
flexbox: 'no-2009',
}),
],
},
},
],
},
我添加了*.css.d.ts
文件
export const wrapper: string;
css-modules
仍然导出空对象
import * as React from 'react';
import * as Styles from './LogIn.css';
import * as ReactTransitionGroup from 'react-transition-group';
import { Form, Icon, Input, Button } from 'antd';
console.log(Styles) // {}
console.log(Styles.wrapper) // undefined
解决方案
react-app-rewired 和纱线弹出是矛盾的
使用 typescript 和 css 模块
{
test: /\.css$/,
include: /node_modules/,
use: [
require.resolve('style-loader'),
{
loader: require.resolve('css-loader'),
options: {
importLoaders: 1
},
},
{
loader: require.resolve('postcss-loader'),
options: {
// Necessary for external CSS imports to work
// https://github.com/facebookincubator/create-react-app/issues/2677
ident: 'postcss',
plugins: () => [
require('postcss-flexbugs-fixes'),
autoprefixer({
browsers: [
'>1%',
'last 4 versions',
'Firefox ESR',
'not ie < 9', // React doesn't support IE8 anyway
],
flexbox: 'no-2009',
}),
],
},
},
],
},
{
test: /\.css$/,
exclude: /node_modules/,
use: [
require.resolve('style-loader'),
{
loader: require.resolve('typings-for-css-modules-loader'),
options: {
modules: true,
namedExport: true,
camelCase: true
},
},
{
loader: require.resolve('postcss-loader'),
options: {
// Necessary for external CSS imports to work
// https://github.com/facebookincubator/create-react-app/issues/2677
ident: 'postcss',
plugins: () => [
require('postcss-flexbugs-fixes'),
autoprefixer({
browsers: [
'>1%',
'last 4 versions',
'Firefox ESR',
'not ie < 9', // React doesn't support IE8 anyway
],
flexbox: 'no-2009',
}),
],
},
},
],
},
推荐阅读
- sql - 我们如何在 Oracle 中进行这样的简单连接?
- c# - 在 ComboBox 中绑定颜色预览方块
- python - 带有 Python 和 Pandas 的状态计数机
- reactjs - aws-exports.js 是否应该暴露在客户端/aws-exports.js 的安全风险
- html - 在标题Angular6中显示用户名
- javascript - jQuery 'drop' 函数未被调用,被 'over' 函数覆盖
- javascript - 尝试使用 getJson 和 Datatables 在单个 HTML 页面上显示多个表时重复相同的表
- c - C 中 2 的幂的 Misra 兼容宏
- python - python tkinter - 跟踪和保存鼠标点击以构建画布项目
- c# - 检查c#中是否存在动态元素