如何在 create-react-app 中使用 less 作为变量

How can I use less in create-react-app as variables

我正在使用 create-react-app 和 react-app-rewire-lessreact-app-rewired

全新安装后,我发现 less 无法正常工作。

使用 className="header" 工作正常,但 className={styles.header} 不工作。

这是我的 config-overrides.js

const rewireLess = require('react-app-rewire-less');

module.exports = function override(config, env) {

config = rewireLess.withLoaderOptions({
       javascriptEnabled: true
   })(config, env);
   return config;
};

这是我的App.js,只需将import './App.css';更改为import styles from './App.less';,并使用styles.header作为header样式

import React, { Component } from 'react';
import logo from './logo.svg';
import styles from './App.less';

class App extends Component {
  render() {
    return (
      <div className="App">
        <header className={styles.header}>
          <img src={logo} className="App-logo" alt="logo" />
          <p>
            Edit <code>src/App.js</code> and save to reload.
          </p>
          <a
            className="App-link"
            href="https://reactjs.org"
            target="_blank"
            rel="noopener noreferrer"
          >
            Learn React
          </a>
        </header>
      </div>
    );
  }
}

export default App;

也将 App.css 更改为 'App.less',将 App-header 更改为 header,以及 react-script

是的,这是模块问题较少。 刚刚 npm install --save-dev react-app-rewire-less-modules

将您的 **.less 文件更改为 **.module.less

更改您的配置文件

const rewireLess = require("react-app-rewire-less-modules");
module.exports = function override(config, env) {
  config = rewireLess.withLoaderOptions({
    javascriptEnabled: true,
  })(config, env);
  return config;
};