zoukankan      html  css  js  c++  java
  • react如何全局配置sass

    在react中,在src文件夹下,新建assets文件夹,其内存放一些公共的scss文件。在组件需要使用scss文件时,需要在组件的样式中用@import导入。由于需要频繁使用公共的scss文件,每次都需要使用@import导入。这样会很麻烦。代码要更优雅。为了达到这个目的,需要对公共的scss文件进行全局配置,这样组件使用时,就不用导入。

    1.下载必要的包: 

    该项目需要sass-resources-loader,customize-cra,react-app-rewired三个包,可以用于yarn add或者npm install + 包名下载。

    yarn add sass-resources-loader
    yarn add customize-cra
    yarn add react-app-rewired

     2.配置新文件:

    在项目的根目录下,新建一个名为config-overrides.js的文件,在文件中进行配置,使项目可以在不暴露webpack.config.js文件的情况下,修改其配置。

    // 使用sass作为全局变量
    const { override, adjustStyleLoaders }  = require("customize-cra");
     
    module.exports = override(
            // 配置指定文件为sass全局文件,可以不用导入就可以使用
            adjustStyleLoaders(rule => {
                    if (rule.test.toString().includes('scss')) {
                            rule.use.push({
                                    loader: require.resolve('sass-resources-loader'),
                                    options: {
                                            resources: [
                                                    './src/assets/_vars.scss',
                                                    './src/assets/_mixin.scss',
                                                    './src/assets/_func.scss',
                                                    './src/assets/_public.scss'
                                            ]
                                    }
                            });
                    }
            })
    );

     resources节点中的是需要进行全局配置的scss文件。

    3.修改package.json文件:

     如果想要sass的全局配置起效,需要修改package.json文件后,再重启项目。

    "scripts": {
            "start": "set PORT=8888&&react-app-rewired start",
            "build": "react-app-rewired build",
            "test": "react-app-rewired test",
            "eject": "react-app-rewired eject"
        },

       全部配置好后,就可以在任意组件的scss文件中,使用公共scss文件声明的变量和函数。无需引入。

    原文链接: https://blog.csdn.net/qq_41339126/article/details/109484010

  • 相关阅读:
    从app加载页面说开去
    NSLog打印各种类型数据的方法
    17个常用代码整理
    成为优秀程序员的10点建议
    iOS常用第三方类库
    iPhone开发如何捕获提交异常日志
    IOS 关于四舍五入的神器NSDecimalNumber
    面向对象与面向过程的一点思考
    程序员,你会为谁卖命?
    关于面向对象的一点思考
  • 原文地址:https://www.cnblogs.com/hjsblogs/p/14498634.html
Copyright © 2011-2022 走看看