zoukankan      html  css  js  c++  java
  • React环境下css+less module配置方法

    使用环境:React 16.0
    React 官方脚手架配置React项目后css、less并未模块化设置,刚入门react的小伙伴可能会对这个有些疑问,跟着走一遍流程,将css、less模块化配置。

    官方脚手架新建React项目

    $ npx create-react-app css-less-module //新建一个名为css-less-module的$ react项目
    $ cd css-less-module // 进入项目根目录
    $ npm start  // 运行项目
    

      运行官方配置的项目之后显示的是官方demo的内容,为了演示,将App.js文件内的代码替换成如下:

    import React, { Component } from 'react';
    import cssStyles from './App.css';
    import lessStyles from './App.less'
    
    class App extends Component {
      render() {
        return (
          <div style={{textAlign:'center'}}>
            <div className='cssModule'>css模块化配置</div>
            <div className={cssStyles.cssModule}>css模块化配置</div>
            <div className='lessModule'>less模块化配置</div>
            <div className={lessStyles.lessModule}>less模块化配置</div>
          </div>
        );
      }
    }
    
    export default App;
    

      

    App.css代码:

    .cssModule {
      font-size: 40px;
      color: blue;
    }
    

      

    App.less代码:

    .cssModule {
      font-size: 40px;
      color: red;
    }
    

      

     less格式的文件并没有被导入,css虽然被导入,但是因为没有模块化,所以className={cssStyles.cssModule}这种写法是无效的,所以我们准备配置css、less模块化。

    配置css、less模块化

    1. 引入less

    $ npm install less-loader less -save-dev

    1. 修改node_modules eact-scriptsconfig路径下的webpack.config.dev.jswebpack.config.prod.js文件

    oneOf: []里加入以下代码,大概在prod的383行、dev的309行

    {
                test: /.(css|less)$/,
                exclude: /node_modules.(css|less)/,
                use: [
                    require.resolve('style-loader'),
                    {
                        loader: require.resolve('css-loader'),
                        options: {
                          importLoaders: 1,
                          modules: true,
                        },
                    },
                    {
                        loader: require.resolve('postcss-loader'),
                        options: {
                            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',
                                }),
                            ],
                        },
                    },
                    {
                      loader: require.resolve('less-loader'), // compiles Less to LESS
                      options: {
                        importLoaders: 2,
                        modules: true,   
                        getLocalIdent: getCSSModuleLocalIdent,
                      },
                    },
                ],
    },
    

      

    此种改法简单粗暴,其它更精致、更方便的改法可以共同探讨,读懂源码之后可以再其它地方修改,有兴趣的大佬可以试试看

    配置完成

    模块化配置完之后的效果如下:

    1、路在何方? 路在脚下 2、何去何从? 每个人都在探索,未来的方向在何处。如果说某些方向是世人已经公认的,那么就先按照公认的去走吧(ps:站在巨人的肩膀上看世界会清晰)。 如果说方向,当今世人还不清晰准确。那么就大胆往前走吧,对与错并不重要。心中的方向更加重要。
  • 相关阅读:
    WampServer Mysql配置
    Java实现 蓝桥杯VIP 算法提高 陶陶摘苹果2
    Java实现 蓝桥杯VIP 算法提高 陶陶摘苹果2
    Java实现 蓝桥杯VIP 算法提高 陶陶摘苹果2
    Java实现 蓝桥杯VIP 算法提高 质因数2
    Java实现 蓝桥杯VIP 算法提高 质因数2
    Java实现 蓝桥杯VIP 算法提高 质因数2
    Java实现 蓝桥杯VIP 算法提高 质因数2
    Java实现 蓝桥杯VIP 算法提高 质因数2
    Java实现 蓝桥杯VIP 算法提高 前10名
  • 原文地址:https://www.cnblogs.com/yuanjili666/p/13625559.html
Copyright © 2011-2022 走看看