【react+ts】react配置使用less

踩 坑 不 易 , 还 希 望 各 位 大 佬 支 持 一 下 \textcolor{gray}{踩坑不易,还希望各位大佬支持一下}

📃 个 人 主 页 : \textcolor{green}{个人主页:} 沉默小管

📃 个 人 网 站 : \textcolor{green}{个人网站:} 沉默小管

🔥 技 术 交 流 Q Q 群 : : 837051545 \textcolor{green}{技术交流QQ群::837051545} QQ:837051545

👍 点 赞 , 你 的 认 可 是 我 创 作 的 动 力 ! \textcolor{green}{点赞,你的认可是我创作的动力!}

⭐️ 收 藏 , 你 的 青 睐 是 我 努 力 的 方 向 ! \textcolor{green}{收藏,你的青睐是我努力的方向!}

✏️ 评 论 , 你 的 意 见 是 我 进 步 的 财 富 ! \textcolor{green}{评论,你的意见是我进步的财富!}

如果有不懂可以留言,我看到了应该会回复
如有错误,请多多指教

问题原因

react+ts项目中找不到login.less模块,没有配置查找less和css后缀,项目默认找node_modules里的模块,所以我们需要在配置项中添加less和css

import style from "./login.less"

解决流程

1.暴露react配置文件

在项目根目录运行npm run eject暴露react配置文件

npm run eject

如果有报错请查看我另外一篇文章
运行npm run eject报错解决办法

2.修改配置文件

1.找到cssRegex,用以下代码覆盖

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

2.找到变量名getStyleLoaders,修改里面的函数
添加修改以下代码

const getStyleLoaders = (cssOptions, lessOptions,preProcessor) => {
    const loaders = [
      ...
      {
        loader: require.resolve('less-loader'),
        options: lessOptions,
      },
      ...
    ]
  }

3.找到sassRegex关键词,在下面添加以下代码

{
  test: sassRegex,
   exclude: sassModuleRegex,
   use: getStyleLoaders(
     {
       importLoaders: 3,
       sourceMap: isEnvProduction
         ? shouldUseSourceMap
         : isEnvDevelopment,
     },
     'sass-loader'
   ),
   // 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, but using SASS
 // using the extension .module.scss or .module.sass
 {
   test: sassModuleRegex,
   use: getStyleLoaders(
     {
       importLoaders: 3,
       sourceMap: isEnvProduction
         ? shouldUseSourceMap
         : isEnvDevelopment,
       modules: {
         getLocalIdent: getCSSModuleLocalIdent,
       },
     },
     'sass-loader'
   ),
 },
 {
   test: lessRegex,
   exclude: lessModuleRegex,
   use: getStyleLoaders(
     {
       importLoaders:1,
       sourceMap: isEnvProduction && shouldUseSourceMap,
     },
     'less-loader'
   ),
   sideEffects: true,
 },
 {
   test: lessModuleRegex,
   use: getStyleLoaders(
     {
       importLoaders:1,
       sourceMap: isEnvProduction && shouldUseSourceMap,
       modules: {
         getLocalIdent: getCSSModuleLocalIdent,
       },
     },
     'less-loader'
   ),
 },

重启项目

npm run start

这里特别注意安装的less-loader是5.0.0
npm install less-loader@5.0.0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

沉默小管

你的鼓励是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值