react设置less,并运用less module(webpack.config.js设置)

网上看了许多设置,末了才发明create-react-app2.0后就不必eject就能够运用css module特征,那末less模仿css的设置即可

1.css module的运用

将CSS文件名为[filename].module.css

import styles from ‘./index.module.css’;

2.设置less

  1. 暴露webpack设置文件

    cnpm run eject

    《react设置less,并运用less module(webpack.config.js设置)》

  2. 装置lessless-loader依靠

    npm install less less-loader --save-dev
  3. 修正webpack.config.js文件设置,一共修正三处
第一处:增添定义变量

```
const cssRegex = /\.css$/;
const cssModuleRegex = /\.module\.css$/;
const sassRegex = /\.(scss|sass)$/;
const sassModuleRegex = /\.module\.(scss|sass)$/;
const lessRegex = /\.less$/;
const lessModuleRegex = /\.module\.less$/;
```

第二处:模仿css设置less
```
{
                            test: cssRegex,
                            exclude: cssModuleRegex,
                            use: getStyleLoaders({
                                importLoaders: 1,
                                sourceMap: isEnvProduction && shouldUseSourceMap,
                            }),
                            // Don't consider CSS imports dead code even if the
                            // containing package claims to have no side effects.
                            // Remove this when webpack adds a warning or an error for this.
                            // See https://github.com/webpack/webpack/issues/6571
                            sideEffects: true,
                        },
                        // Adds support for CSS Modules (https://github.com/css-modules/css-modules)
                        // using the extension .module.css
                        {
                            test: cssModuleRegex,
                            use: getStyleLoaders({
                                importLoaders: 1,
                                sourceMap: isEnvProduction && shouldUseSourceMap,
                                modules: true,
                                getLocalIdent: getCSSModuleLocalIdent,
                            }),
                        },

                        // Opt-in support for SASS (using .scss or .sass extensions).
                        // By default we support SASS Modules with the
                        // extensions .module.scss or .module.sass



                        {
                            test: lessRegex,
                            exclude: lessModuleRegex,
                            use: getStyleLoaders({
                                importLoaders: 1,
                                sourceMap: isEnvProduction && shouldUseSourceMap,
                            }),
                            // Don't consider CSS imports dead code even if the
                            // containing package claims to have no side effects.
                            // Remove this when webpack adds a warning or an error for this.
                            // See https://github.com/webpack/webpack/issues/6571
                            sideEffects: true,
                        },
                        // Adds support for CSS Modules (https://github.com/css-modules/css-modules)
                        // using the extension .module.css
                        {
                            test: lessModuleRegex,
                            use: getStyleLoaders({
                                importLoaders: 1,
                                sourceMap: isEnvProduction && shouldUseSourceMap,
                                modules: true,
                                getLocalIdent: getCSSModuleLocalIdent,
                            }),
                        },
```
第三处:修正getCSSModuleLocalIdent函数内部,增添less

![图片形貌][2]

3测试是不是装置胜利

  1. 竖立以module.less为末端的less文件

    《react设置less,并运用less module(webpack.config.js设置)》

  2. 经由过程module引入less到index

    import styles from './my.module.less'
    
        render() {
            console.log(styles.text)
            return (
                <div>
                    <div className={styles.text}>Hello World</div>
                </div>
            )
        }
    原文作者:ipromise
    原文地址: https://segmentfault.com/a/1190000018948083
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞