【发布时间】:2018-01-23 06:59:59
【问题描述】:
为了使用 css 模块,我退出了我的 create-react-app。我从
修改了我的 webpack.config.dev.js {
test: /\.css$/,
use: [
require.resolve('style-loader'),
{
loader: require.resolve('css-loader'),
options: {
importLoaders: 1,
modules: true, //added this
localIdentName: "[name]__[local]___[hash:base64:5]" //added this
},
},
{
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 模块
import React, { Component } from 'react';
import styles from './sidebar.css';
class MenuPanel extends Component {
render() {
return (
<div>
<div className={styles.navbarSide}>
<div className="tessact-logo"></div>
<div className="navbar-item active">
<a className="navbar-item-link"><span className="fa fa-comment"></span> TRIVIA</a>
</div>
但是 className navbarSide 没有被应用到 div。我看不到那个特定 div 的 className。我究竟做错了什么?理想情况下,该 div 应该有 className navbarSide。
【问题讨论】:
-
我在当前配置中具有完全相同的功能,并且可以正常工作。您可以尝试删除 post-css 加载器并查看它是否首先工作吗?并尝试使用
require导入您的css文件:const styles = require('./sidebar.css'); -
谢谢。这行得通。但是我能知道原因吗?
-
我遇到了同样的问题,这使它起作用了,我也很好奇原因。
标签: css reactjs webpack create-react-app css-modules