React项目less样式无效

我们在用react脚手架搭建项目的时候,webpack的相关配置已经被隐藏了。如果要解决less样式无效这个问题,那么我们需要先把webpack的相关配置暴露出来。

先贴一下我react和webpack的版本,因为我在查资料的时候发现config最后暴露出来的文件和网上的不一样。

在这里插入图片描述

1、安装less依赖

npm install less less-loader

2、暴露配置:

npm run eject

3、修改配置文件

在这里插入图片描述
经过第二步之后,你的项目会多一个config的文件夹,里面的内容如上图。

然后需改一下webpack.config.js即可。

(1)、在47行左右添加lessRegex 和lessModuleRegex ,参考上面的cssRegex和cssModuleRegex
// style files regexes
const cssRegex = /\.css$/;
const cssModuleRegex = /\.module\.css$/;
const sassRegex = /\.(scss|sass)$/;
const sassModuleRegex = /\.module\.(scss|sass)$/;
const lessRegex = /\.less$/;
const lessModuleRegex = /\.module\.less$/;
(2)、在73行左右添加一个loader
  const getStyleLoaders = (cssOptions, preProcessor) => {
    const loaders = [
      isEnvDevelopment && require.resolve('style-loader'),
      isEnvProduction && {
        loader: MiniCssExtractPlugin.loader,
        // css is located in `static/css`, use '../../' to locate index.html folder
        // in production `paths.publicUrlOrPath` can be a relative path
        options: paths.publicUrlOrPath.startsWith('.')
          ? { publicPath: '../../' }
          : {},
      },
      {
        loader: require.resolve('css-loader'),
        options: cssOptions,
      },
      {
        loader: require.resolve('less-loader')
      },

图中的最后一个大括号的内容。

(3)、在326行左右你会看到一个module,里面有strictExportPresence,rules等参数。再配置两个关于less的参数即可。参照463行左右的sassRegex和sassModuleRegex。
 {
     test: lessRegex,
     exclude: lessModuleRegex,
     use: getStyleLoaders(
       {
         importLoaders: 3,
         sourceMap: isEnvProduction && shouldUseSourceMap,
       },
       'less-loader'
     ),
     sideEffects: true,
   },

   {
     test: lessModuleRegex,
     use: getStyleLoaders(
       {
         importLoaders: 3,
         sourceMap: isEnvProduction && shouldUseSourceMap,
         modules: {
           getLocalIdent: getCSSModuleLocalIdent,
         },
       },
       'less-loader'
     ),
   },

最后重启项目,然后坐等Compiled successfully!的提示就好了。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值