TypeError:this.getOptions is not a function react坑--使用less

在使用create-react-app时发现不支持less,需更手动更改。

1、下载less less-loader

// 使用npm
 npm install less less-loader -D
 // 使用 yarn
 yarn add less less-loader

2、配置webpack.config.js

在这里如果项目中没有webpack.config.js此文件的,可以执行npm run eject,如果执行报错,则执行以下命令

git add . 
git commit -m "init"
npm run eject

在webpack.config.js文件中是可以看到对sass的配置的,在sass配置的后面复制一份,改成less的配置就可以了。

// style files regexes
const cssRegex = /\.css$/;
const cssModuleRegex = /\.module\.css$/;
const sassRegex = /\.(scss|sass)$/;
const sassModuleRegex = /\.module\.(scss|sass)$/;
//新建less配置:
const lessRegex = /\.(less|less)$/;
const lessModuleRegex = /\.module\.(less|less)$/;

//在module中找到rules下的oneOf 并在sass后添加如下配置
			{
              test: lessRegex,
              exclude: lessModuleRegex,
              use: getStyleLoaders(
                {
                  importLoaders: 3,
                  sourceMap: isEnvProduction
                    ? shouldUseSourceMap
                    : isEnvDevelopment,
                },
                'less-loader'
              ),
              sideEffects: true,
            },
            {
              test: lessModuleRegex,
              use: getStyleLoaders(
                {
                  importLoaders: 3,
                  sourceMap: isEnvProduction
                    ? shouldUseSourceMap
                    : isEnvDevelopment,
                  modules: {
                    getLocalIdent: getCSSModuleLocalIdent,
                  },
                },
                'less-loader'
              ),
            }

3、配置后运行报错TypeError:this.getOptions is not a function

错误原因:8.0+版本的less-loader的配置方法发生了变化,导致报错
解决方法:安装低版本的less-loader

// 使用npm
 npm install less-loader@5.0.0 -D
 // 使用 yarn
 yarn add  less-loader@5.0.0 -D
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值