React中低版本的webpack配置less的方案

React中低版本的webpack配置less的方案

如果用create-react-app创建出react项目,那么如下所示,所有安装的的东西会放在scripts中
在这里插入图片描述

其中"scripts"帮你自动下载需要的 webpack-dev-server 依赖,包括开始start,打包build,测试test,配置都放在eject中,所以如果想要配置自带的依赖外的less的东西需要暴露出eject依赖文件

yarn less-loader或者npm install less-loader//先安装依赖
yarn eject 或者npm run eject//解构目录

执行上面操作之后,自动会生成config文件夹,需要修改webpack.config.dev.js和webpack.config.prod.js两个文件,打开config目录下的webpack.config.dev.js,修改webpack配置,如下图
在这里插入图片描述

高版本webpack配置less

在配置文件中做了两处修改

第一处是找到 cssRegex和cssModuleRegex 在他们得我下面新建lessRegex和lessModuleRegex变量

第二处是增加 less-loader的配置

具体修改如下

//第一块大概在38行左右
const lessRegex = /\.less$/;
const lessModuleRegex = /\.module\.less$/;
//第二块大概在318行左右
 //配置less
{
 test: lessRegex,
 exclude: lessModuleRegex,
 use: getStyleLoaders({ importLoaders: 2 }, 'less-loader'),
},
{
  test: lessModuleRegex,
  use: getStyleLoaders(
{
  importLoaders: 2,
  modules: true,
  getLocalIdent: getCSSModuleLocalIdent,
   },
 'less-loader'
 ),
 },

同样webpack.config.prod.js开发环境中也做一样的修改
切记万万不可将整个文件复制过去,毕竟安装的东西都不一样,按需复制即可

低版本webpack配置less

// 第一处是找到 `test: /\.css$/` 将其改为  `test: /\.(css|less)$/`
  // 第二处是增加 `less-loader`的配置
  // 第三处是在exclude属性中增加 `/\.(css|less)$/` 
  // 具体修改如下
  module: {
    ...
    {
      // test: /\.css$/  第一处 
      test: /\.(css|less)$/,
      use: [
        require.resolve('style-loader'),
        ...
        // 第二处
        {
          loader: require.resolve('less-loader')
        }
      ]
    },
    {
      exclude: [
        /\.(js|jsx|mjs)$/, 
        /\.html$/, 
        /\.json$/,
        // 第三处
        /\.(css|less)$/,
      ]
    }
  }

最好在node_modules/react-scripts路径下的webpack.config.prod.js和webpack.config.dev.js也进行上面同样的修改,因为我试过只修改config文件夹下的webpack.config.prod.js和webpack.config.dev.js还是没有效果。
最后重新启动,引入的less就起作用了。
参考链接: https://zhuanlan.zhihu.com/p/52088011

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值