React官方脚手架不支持less问题解决

create-react-app是由React官方提供,并推荐构建React单页应用程序的最佳方法,但是默认不支持less,需要手动集成:

1,必须手动安装less

npm install less less-loader

2,暴露webpack配置文件【npm run eject】,修改weppack.config.js文件中,添加less配置

在module.rules节点中找到 css 文件的加载规则:

  1. test: /\.css$/ 修改为 test: /\.(css|less)$/
  2. use数组最后新增一个对象元素{loader: require.resolve('less-loader')}

修改完成后:

const getStyleLoaders = (cssOptions, preProcessor) => {
    const loaders = [
      isEnvDevelopment && require.resolve('style-loader'),
      isEnvProduction && {
        loader: MiniCssExtractPlugin.loader,
        options: Object.assign(
          {},
          shouldUseRelativeAssetPaths ? { publicPath: '../../' } : undefined
        ),
      },
      {
        loader: require.resolve('css-loader'),
        options: cssOptions,
      },
      {
        // Options for PostCSS as we reference these options twice
        // Adds vendor prefixing based on your specified browser support in
        // package.json
        loader: require.resolve('postcss-loader'),
        options: {
          // Necessary for external CSS imports to work
          // https://github.com/facebook/create-react-app/issues/2677
          ident: 'postcss',
          plugins: () => [
            require('postcss-flexbugs-fixes'),
            require('postcss-preset-env')({
              autoprefixer: {
                flexbox: 'no-2009',
              },
              stage: 3,
            }),
          ],
          sourceMap: isEnvProduction ? shouldUseSourceMap : isEnvDevelopment,
        },        
      },
      {
        loader: require.resolve('less-loader') // compiles Less to CSS
      }
    ].filter(Boolean);
    if (preProcessor) {
      loaders.push({
        loader: require.resolve(preProcessor),
        options: {
          sourceMap: isEnvProduction ? shouldUseSourceMap : isEnvDevelopment,
        },
      });
    }
    return loaders;
  };

需要重新启动项目,即可看到less样式可用!

 

【完】

新年flag3——每个月读两本书,微信读书打卡或者宅机kindle打卡

 

转载于:https://www.cnblogs.com/tangjiao/p/10366204.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
回答: 在React脚手架中,可以使用多种方法来编写CSS样式。其中一种方法是使用内联样式,即在组件中直接使用style属性来定义样式。例如,在Hello组件中可以这样写: ```jsx export default class Hello extends Component { render() { return ( <div> <h1 style={{ backgroundColor: "pink" }}>Hello React</h1> </div> ); } } ``` 另一种方法是使用CSS文件来定义样式,并在组件中引入该CSS文件。例如,在Hello组件中可以这样写: ```jsx import React, { Component } from "react"; import "./Hello.css"; export default class Hello extends Component { render() { return ( <div> <h1 className="title">Hello React</h1> </div> ); } } ``` 在Hello.css文件中定义样式: ```css .title { background-color: pink; } ``` 同样的方式可以应用于其他组件,比如Welcome组件。在Welcome组件中引入Welcome.css文件,并使用className来应用样式。 除了以上两种方法,还可以使用CSS模块化、CSS-in-JS等方式来编写CSS样式。这些方法可以根据具体需求和个人喜好选择使用。 #### 引用[.reference_title] - *1* [React攻略秘籍二:React中使用css的五种方法(包括less与styled-compenents)](https://blog.csdn.net/qq_45865171/article/details/127209069)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [十二、React脚手架](https://blog.csdn.net/chunxiaqiudong5/article/details/126287757)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值