Create React App 支持 Less Modules 的配置说明

Create-React-App 版本:v4.0.1

1. 未执行yarn eject的情形下

@craco/craco(Create React App Configuration Override - 配置扩展库)版本:v5.8.0
 
craco.config.js配置文件代码内容如下:
复制代码
const CracoLess = require('craco-less');
const CracoAntDesign = require('craco-antd');
const path = require('path');

module.exports = {
  plugins: [
    // 针对Less的相关配置(如module样式)
    {
      plugin: CracoLess,
      options: {
        lessLoaderOptions: {
          lessOptions: { javascriptEnabled: true },
        },
        modifyLessRule: function() {
          return {
            test: /\.module\.less$/,
            exclude: /node_modules/,
            use: [
              { loader: 'style-loader' },
              {
                loader: 'css-loader',
                options: {
                  modules: {
                    localIdentName: '[local]_[hash:base64:6]',
                  },
                },
              },
              { loader: 'less-loader' },
            ],
          };
        },
      },
    },
    // `Ant Design`相关配置
    {
      plugin: CracoAntDesign,
      options: {
        customizeThemeLessPath: path.join(
          __dirname,
          'src/antd.customize.less',
        ),
      },
    },
  ],
};
复制代码

 

2. CRA原始工程已被eject的情形下

CRA v4.0.1版本eject后直接运行可能会报错,提示“找不到@babel/plugin-syntax-jsx” !

这里我们手动安装一下: yarn add -D @babel/plugin-syntax-jsx

因为工程中,我们还需要用到less和less-loader,所以先安装下:

yarn add -D less less-loader

 

webpack.config.js文件中(v4.0.1版本的第535行之后,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'
  ),
},

// lessRegex 在上部自行定义:
const lessRegex = /\.less$/;

// lessModuleRegex 在上部自行定义:
const lessModuleRegex = /\.module\.less$/;
复制代码

 

posted @   樊顺  阅读(2617)  评论(1编辑  收藏  举报
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
历史上的今天:
2018-11-24 git push error: ! [rejected] failed to push some refs to . . .
点击右上角即可分享
微信分享提示