当前位置:首页 > React

react 如何引入less

2026-02-26 18:27:36React

在 React 项目中引入 Less

安装 less 和 less-loader 依赖 通过 npm 或 yarn 安装 less 和 less-loader,确保项目能够编译 Less 文件。

npm install less less-loader --save-dev
# 或
yarn add less less-loader --dev

配置 webpack 在项目的 webpack 配置文件中(通常是 webpack.config.jsreact-scripts 的配置),添加对 Less 的支持。如果使用 create-react-app,可能需要通过 react-app-rewiredeject 来修改配置。

module.exports = {
  module: {
    rules: [
      {
        test: /\.less$/,
        use: [
          'style-loader',
          'css-loader',
          'less-loader'
        ]
      }
    ]
  }
};

创建 Less 文件并引入 在项目中创建 .less 文件,例如 styles.less,然后在 React 组件中直接引入。

// styles.less
@primary-color: #1890ff;

.container {
  background-color: @primary-color;
}
// App.js
import './styles.less';

function App() {
  return <div className="container">Hello, Less!</div>;
}

使用 create-react-app 的解决方案

如果项目基于 create-react-app 创建,默认情况下不支持直接修改 webpack 配置。可以通过以下两种方式解决:

使用 react-app-rewired 安装 react-app-rewiredcustomize-cra,然后在项目根目录创建 config-overrides.js 文件。

react 如何引入less

npm install react-app-rewired customize-cra --save-dev
// config-overrides.js
const { override, addLessLoader } = require('customize-cra');

module.exports = override(
  addLessLoader({
    lessOptions: {
      javascriptEnabled: true,
      modifyVars: { '@primary-color': '#1890ff' }
    }
  })
);

修改 package.json 中的脚本命令:

"scripts": {
  "start": "react-app-rewired start",
  "build": "react-app-rewired build",
  "test": "react-app-rewired test"
}

使用 craco 另一种方式是使用 craco(Create React App Configuration Override)。

npm install @craco/craco craco-less --save-dev

创建 craco.config.js 文件:

react 如何引入less

const CracoLessPlugin = require('craco-less');

module.exports = {
  plugins: [
    {
      plugin: CracoLessPlugin,
      options: {
        lessLoaderOptions: {
          lessOptions: {
            javascriptEnabled: true,
            modifyVars: { '@primary-color': '#1890ff' }
          }
        }
      }
    }
  ]
};

修改 package.json 中的脚本命令:

"scripts": {
  "start": "craco start",
  "build": "craco build",
  "test": "craco test"
}

注意事项

确保项目依赖的 webpack 版本与 less-loader 兼容。如果遇到版本冲突问题,可以尝试调整 less-loader 的版本。

在 TypeScript 项目中,可能需要为 Less 文件添加类型声明。在 src 目录下创建 declarations.d.ts 文件:

declare module '*.less' {
  const classes: { [key: string]: string };
  export default classes;
}

通过以上方法,可以在 React 项目中顺利引入并使用 Less,实现样式的模块化和变量管理。

标签: reactless
分享给朋友:

相关文章

react如何使用

react如何使用

React 的基本使用 React 是一个用于构建用户界面的 JavaScript 库,以下是一些核心概念和使用方法。 安装 React 通过 create-react-app 快速搭建 Reac…

如何生成react代码

如何生成react代码

使用 Create React App 生成项目 安装 Node.js 后,通过命令行工具运行以下命令创建新项目: npx create-react-app my-app cd my-app np…

react如何读

react如何读

React 的发音 React 的发音为 /riˈækt/(音标),读作“瑞-艾克特”。其中: “Re” 发音类似英文单词 “read” 的开头部分。 “act” 发音与英文单词 “act” 一致…

react如何卸载

react如何卸载

卸载 React 项目或依赖 如果需要完全卸载 React 项目或相关依赖,可以按照以下步骤操作: 删除项目文件夹 直接删除整个项目文件夹是最彻底的方式。确保已备份重要代码或配置文件。 卸载全局安…

react 如何操作cookie

react 如何操作cookie

安装依赖 在React项目中操作cookie通常需要第三方库的支持,推荐使用js-cookie。通过npm或yarn安装: npm install js-cookie # 或 yarn add js…

react如何代码优化

react如何代码优化

减少不必要的重新渲染 使用 React.memo 包装函数组件以避免在 props 未变化时重新渲染。对于类组件,可以通过 shouldComponentUpdate 或继承 PureComponen…