【问题标题】:css modules not working even after ejecting create-react-app即使在弹出 create-react-app 后,css 模块也无法正常工作
【发布时间】: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


【解决方案1】:

只需添加import { StyleSheet } from 'react-native';

import React, { Component } from 'react';
import { StyleSheet } from 'react-native';
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>

【讨论】:

    猜你喜欢
    • 2021-08-01
    • 1970-01-01
    • 2023-02-05
    • 2019-03-18
    • 2018-02-06
    • 1970-01-01
    • 2021-02-18
    • 2020-08-31
    • 1970-01-01
    相关资源
    最近更新 更多