react如何加入less
安装 less 和 less-loader
在 React 项目中安装 less 和 less-loader 依赖包,这两个包是解析和编译 Less 文件的关键。通过 npm 或 yarn 进行安装:
npm install less less-loader --save-dev
# 或
yarn add less less-loader --dev
配置 webpack
如果项目使用 create-react-app 创建且未 eject,需通过 craco 或 react-app-rewired 修改 webpack 配置。以下是使用 craco 的示例:
-
安装
@craco/craco:npm install @craco/craco --save-dev -
在项目根目录创建
craco.config.js文件,添加以下配置:const { addLessLoader } = require('craco-less'); module.exports = { plugins: [ { plugin: addLessLoader, options: { lessOptions: { modifyVars: {}, // 可自定义 Less 变量 javascriptEnabled: true, }, }, }, ], }; -
修改
package.json中的脚本命令,将react-scripts替换为craco:"scripts": { "start": "craco start", "build": "craco build", "test": "craco test" }
创建并使用 Less 文件
在项目中新建 .less 文件(如 styles.less),编写样式:
@primary-color: #1890ff;
.container {
background: @primary-color;
color: white;
}
在 React 组件中引入 Less 文件:
import './styles.less';
function App() {
return <div className="container">Hello Less!</div>;
}
处理 CSS Modules(可选)
若需使用 CSS Modules,修改 craco.config.js 配置:
module.exports = {
plugins: [
{
plugin: addLessLoader,
options: {
lessOptions: {
modifyVars: {},
javascriptEnabled: true,
},
cssLoaderOptions: {
modules: {
localIdentName: '[local]_[hash:base64:5]', // 自定义类名格式
},
},
},
},
],
};
使用时通过 styles.className 引用:

import styles from './styles.less';
function App() {
return <div className={styles.container}>Hello Less!</div>;
}
注意事项
- 确保 Node.js 版本兼容
less-loader的要求。 - 若遇到编译错误,检查
less-loader版本是否与 webpack 版本匹配。 - 对于 TypeScript 项目,需在
global.d.ts中声明 Less 文件类型:declare module '*.less' { const classes: { [key: string]: string }; export default classes; }






