react中配置less

  • 首先安装less语言所需要的相关依赖
npm i less less-loader --save
  • 然后打开项目中 config/webpack.config.js 一共修改了三处
    第一步,添加变量
    函数中添加less处理
    添加less配置
//添加less配置
const lessRegex = /\.less$/;
const lessModuleRegex = /\.module\.less$/;

// 参数lessOptions为添加项
const getStyleLoaders = (cssOptions, lessOptions, preProcessor) => {
    const loaders = [
      isEnvDevelopment && require.resolve('style-loader'),
      isEnvProduction && {
        loader: MiniCssExtractPlugin.loader,
        options: shouldUseRelativeAssetPaths ? { publicPath: '../../' } : {},
      },
      {
        loader: require.resolve('css-loader'),
        options: cssOptions,
      },
      // 添加 Less 配置
      {
        loader: require.resolve('less-loader'), 
        options: lessOptions,
      },
      {
        // 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,
            }),
            // Adds PostCSS Normalize as the reset css with default options,
            // so that it honors browserslist config in package.json
            // which in turn let's users customize the target behavior as per their needs.
            postcssNormalize(),
          ],
          sourceMap: isEnvProduction && shouldUseSourceMap,
        },
      },
    ].filter(Boolean);
    if (preProcessor) {
      loaders.push({
        loader: require.resolve(preProcessor),
        options: {
          sourceMap: isEnvProduction && shouldUseSourceMap,
        },
      });
    }
    return loaders;
  };

  // 添加less配置
  {
    test: lessRegex,
    exclude: lessModuleRegex,
    use: getStyleLoaders(
    {
        importLoaders: 2,
        sourceMap: isEnvProduction && shouldUseSourceMap,
    },
    'less-loader'
    ),
    sideEffects: true,
},
{
    test: lessModuleRegex,
    use: getStyleLoaders(
    {
        importLoaders: 2,
        sourceMap: isEnvProduction && shouldUseSourceMap,
        modules: true,
        getLocalIdent: getCSSModuleLocalIdent,
    },
    'less-loader'
    ),
},
  • 恭喜你,配置成功,重新运行项目,添加一个less文件,看看是否能正常运行,欢迎有问题大家一起讨论。
### 如何在 React 项目中配置和使用 LESS 为了使 React 项目支持 LESS 文件,在 Webpack 中添加特定的配置是必要的[^1]。 #### 修改 Webpack 配置以支持 LESS 对于未弹出原始配置的 Create React App (CRA) 应用程序,可以通过执行 `npm run eject` 来暴露 Webpack 配置。这一步骤不可逆,请谨慎操作[^3]。完成此命令之后会在项目的根目录下发现一个新的 `config` 文件夹,其中包含了 `webpack.config.js` 文件。在这个文件里,大约第50行附近的位置,应当加入针对 `.less` 和 `.module.less` 文件的支持逻辑: ```javascript const lessRegex = /\.less$/; const lessModuleRegex = /\.module\.less$/; // ...其他代码... { 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' ) } ``` 上述代码片段定义了两个规则来处理普通的 LESS 文件以及 CSS Modules 样式的 LESS 文件[^2]。通过这种方式,Webpack 将能够识别并编译这些资源到最终的应用构建之中。 #### 安装依赖包 除了调整 Webpack 设置外,还需安装几个 NPM 包以便正确解析和加载 LESS 文件。具体来说就是 `less` 及其对应的 loader (`less-loader`)。可以在终端输入如下指令来进行安装: ```bash npm install less less-loader --save-dev ``` 这样就完成了所有的准备工作,现在可以直接创建 `.less` 或者带有模块化的 `.module.less` 文件,并像平常一样导入它们即可生效[^4]。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值