react配置less

react

最近使用 create-react-app 脚手架搭建的react项目不支持 less ,但 antd 修改主题要用到less。

当前版本: react:^16.9.0

配置步骤:

1、将配置文件暴露出来

yarn eject
或者
npm run eject

2、安装 less,less-loader 插件

yarn add less less-loader

或者

npm install less less-loader --save

3、打开 config 文件夹,修改 webpack.config.js

搜索 style files regexes ,找到后添加两行代码

// style files regexes

const cssRegex = /\.css$/;

const cssModuleRegex = /\.module\.css$/;

const sassRegex = /\.(scss|sass)$/;

const sassModuleRegex = /\.module\.(scss|sass)$/;

const lessRegex = /\.less$/;

const lessModuleRegex = /\.module\.less$/;

修改 getStyleLoaders 函数,添加代码

  // common function to get style loaders

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,

},

{

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'),

搜索 cssRegex ,在 css 配置下添加 less 配置

{

test: cssRegex,

exclude: cssModuleRegex,

use: getStyleLoaders({

importLoaders: 1,

sourceMap: isEnvProduction && shouldUseSourceMap,

}),

// Don't consider CSS imports dead code even if the

// containing package claims to have no side effects.

// Remove this when webpack adds a warning or an error for this.

// See https://github.com/webpack/webpack/issues/6571

sideEffects: true,

},

// Adds support for CSS Modules (https://github.com/css-modules/css-modules)

// using the extension .module.css

{

test: cssModuleRegex,

use: getStyleLoaders({

importLoaders: 1,

sourceMap: isEnvProduction && shouldUseSourceMap,

modules: true,

getLocalIdent: getCSSModuleLocalIdent,

}),

},

{

test: lessRegex,

exclude: lessModuleRegex,

use: getStyleLoaders(

{

importLoaders: 1,

sourceMap: isEnvProduction

? shouldUseSourceMap

: isEnvDevelopment,

},

'less-loader'

),

sideEffects: true,

},

{

test: lessModuleRegex,

use: getStyleLoaders(

{

importLoaders: 1,

sourceMap: isEnvProduction

? shouldUseSourceMap

: isEnvDevelopment,

modules: true,

getLocalIdent: getCSSModuleLocalIdent,

},

'less-loader'

),

},

 4、重新启动项目,less 文件就支持使用了

yarn start

或者

npm run start

以上是 react配置less 的全部内容, 来源链接: utcz.com/z/382652.html

回到顶部