React学习笔记_css module

让react antd 支持 css module 和 less moduel

  • 问题配置了less module 会和 antd 的less 冲突。
  • 解决方式 使用module的less 文件命名规则。index.module.less

一、配置css 支持 css module

设置css-loader的options

  • importLoaders: 1,
  • modules: true, // 新增对css modules的支持
import styles from './index.css';
{
                test: /\.css$/,
                use: [
                    require.resolve('style-loader'),
                    {
                        loader: require.resolve('css-loader'),
                        options: {
                            importLoaders: 1,
                            modules: true,   // 新增对css modules的支持
                        },
                    },
                    {
                        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',
                                }),
                            ],
                        },
                    },
                ],
            },

二、让 less 支持less module

  • 为了解决和antd的配置冲突。文件命名增加module
  • 对less 结尾的文件的 css-loader 的options 进行设置。
import styles from './index.module.less';

注意 less 文件的命名为 index.module.less

{
                test: /\.less$/,
                use: [
                    require.resolve('style-loader'),
                    ({ resource }) => ({
                        loader: 'css-loader',
                        options: {
                            importLoaders: 1,
                            modules: /\.module\.less/.test(resource),
                            localIdentName: '[name]__[local]___[hash:base64:5]',
                        },
                    }),
                    {
                        loader: require.resolve('postcss-loader'),
                        options: {
                            ident: 'postcss', // https://webpack.js.org/guides/migrating/#complex-options
                            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',
                                }),
                            ],
                        },
                    },
                    {
                        loader: require.resolve('less-loader'),
                        options: {
                            modifyVars: {"@primary-color": "#404040"},
                        },
                    },
                ],
            }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值