React 安装使用 Less(详细流程,包含 webpack、craco 方式)

这篇具有很好参考价值的文章主要介绍了React 安装使用 Less(详细流程,包含 webpack、craco 方式)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、简介

  • React 项目开发中可能会使用到 LessSass 等样式预处理器,create-react-app 创建的 React 项目,默认就是支持 Sass 的。如果需要使用 Less 则需要额外手动安装配置。

二、方式一:webpack.config.js 配置(不推荐)

  • 由于需要暴露隐藏的配置文件,不利于项目升级,不推荐使用。

  • 安装 lessless-loader

    $ npm i less less-loader -S
    # 或
    $ yarn add less less-loader -S
    
  • 暴露 webpack 配置文件。(提示:该操作不可逆,长远考虑不推荐使用该方案)

    $ npm run eject
    
  • 修改 webpack.config.js 配置文件

    首先要找到以下代码,可以使用 VSCode 查询功能直接找到,搜索内容为 sass:

    // style files regexes
    const cssRegex = /\.css$/;
    const cssModuleRegex = /\.module\.css$/;
    const sassRegex = /\.(scss|sass)$/;
    const sassModuleRegex = /\.module\.(scss|sass)$/;
    

    仿照格式,在下面配置 less:

    // 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$/;
    

    继续向下搜索 sass,能够找到以下代码:

    ...
    {
      test: sassRegex,
      exclude: sassModuleRegex,
      use: getStyleLoaders(
        {
          importLoaders: 3,
          sourceMap: isEnvProduction
            ? shouldUseSourceMap
            : isEnvDevelopment,
          modules: {
            mode: 'icss',
          },
        },
        'sass-loader'
      ),
      // 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, but using SASS
    // using the extension .module.scss or .module.sass
    {
      test: sassModuleRegex,
      use: getStyleLoaders(
        {
          importLoaders: 3,
          sourceMap: isEnvProduction
            ? shouldUseSourceMap
            : isEnvDevelopment,
          modules: {
            mode: 'local',
            getLocalIdent: getCSSModuleLocalIdent,
          },
        },
        'sass-loader'
      ),
    },
    ...
    

    和之前配置一样,仿照 sass 配置,添加 less 配置:

    ...
    // config less
    {
      test: lessRegex,
      exclude: lessModuleRegex,
      use: getStyleLoaders(
        {
          importLoaders: 3,
          sourceMap: isEnvProduction
            ? shouldUseSourceMap
            : isEnvDevelopment,
        },
        'less-loader'
      ),     
      sideEffects: true,
    },
    {
      test: lessModuleRegex,
      use: getStyleLoaders(
        {
          importLoaders: 3,
          sourceMap: isEnvProduction
            ? shouldUseSourceMap
            : isEnvDevelopment,
          modules: {
            getLocalIdent: getCSSModuleLocalIdent,
          },
        },
        'less-loader'
      ),
    },
    ...
    
  • 到这就完成了 webpack.config.js 配置 less,重启项目则可使用 less 样式了。

三、方式二:craco.config.js 配置(推荐)

  • 安装 craco

    $ npm i @craco/craco
    # 或
    $ yarn add @craco/craco
    
  • 安装 lesscraco-less

    $ npm i less craco-less
    # 或
    $ yarn add less craco-less
    
  • 修改 package.json 文件

    "scripts": {
        // "start": "react-scripts start",
        // "build": "react-scripts build",
        // "test": "react-scripts test",
        "start": "craco start",
        "build": "craco build",
        "test": "craco test",
        "eject": "react-scripts eject"
    }
    
  • 补充:下载装饰器(可选,看情况使用)

    $ npm i @babel/plugin-proposal-decorators -S
    # 或
    $ yarn add @babel/plugin-proposal-decorators -S
    
  • 根目录创建,并配置 craco.config.js 文件文章来源地址https://www.toymoban.com/news/detail-706652.html

    const path = require('path')
    const lessPlugin = require("craco-less");
    
    module.exports = {
      // 插件
      plugins: [
        {
          plugin: lessPlugin,
          options: {
            lessLoaderOptions: {
              lessOptions: {
                // antdv 主题之类的配置
                // modifyVars: { "@primary-color": "#1DA57A" },
                javascriptEnabled: true
              }
            }
          }
        }
      ],
      // 如果没安装,可以删除
      babel: {
        plugins: [["@babel/plugin-proposal-decorators", { legacy: true }]]
      }
    }
    

到了这里,关于React 安装使用 Less(详细流程,包含 webpack、craco 方式)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • React框架的介绍、特点、安装及基本使用流程

    react是由facebook前端开发团队开发和维护的js框架 react的实现功能类似VUE,但是由于国外的开发风格,导致在react上,并没有对数据渲染的步骤进行封装,需要开发者更多的使用es6的语法手动完成数据渲染,所以,代码难度比VUE高。 1.一切皆组件:在react中几乎都是使用组件进行

    2024年01月21日
    浏览(42)
  • webpack的安装与配置使用 最全最详细的小白教学

    理解: webpack本身是node的一个第三方模块包, 用于打包代码 webpack官网 现代 javascript 应用程序的 静态模块打包器 (module bundler) 为要学的 vue-cli 开发环境做铺垫 作用:把很多文件打包整合到一起, 缩小项目体积, 提高加载速度 常用 loader less-loader 用于将 less 编译成 css css-loader 用于

    2024年02月05日
    浏览(53)
  • webpack 打包原理及流程解析,超详细!

    友情提示: a.前面会稍微有些枯燥,文字居多(建议还是过一遍),后面就劲爆了!!! b.本文干货满满,非常详细,整理资料到发布文章耗时5个小时+,请大家耐心看 本质上,webpack 是一个现代 JavaScript 应用程序的 静态模块打包器 。当 webpack 处理应用程序时,它会递归地构建

    2024年02月13日
    浏览(38)
  • 使用ADB命令查看手机已安装应用详细信息,包含应用名称

    最近有个需求需要获取手机上已安装应用列表,需要包含应用名称(非包名)、版本号、包名等信息,记录一下解决过程。 使用adb命令查看设备已安装应用列表很简单 但命令只能获取到应用包名 想要获取应用的详细信息需要使用以下命令 但查看输出发现,该命令可以获取到

    2024年02月15日
    浏览(56)
  • Cheat Enginee(CE)的详细使用指南~包含下载安装教程以及核心功能讲解

    首先:搜索并且进入官网,点击DownLoad按钮 选择下载路径:(根据自己计算机的实际情况进行下载) 下载完成后运行exe安装文件,并选择自己熟悉的语言,点击OK进入安装程序 点击NEXT按钮,继续安装 进入到ce修改器(Cheat Engine)许可协议界面,点击Accept按钮,同意协议 下载产品

    2024年02月01日
    浏览(55)
  • 使用webpack建立React+TS项目

    之前写过类似的文章,这次看到一本新书里也介绍了这个知识点,故尝试之。 Refer: 《Learn React With TypeScript - A Beginner\\\'s Guide To Reactive Web Development With React 18 and TypeScript》chapter3 Creating a project with webpack 1.先建立一个空的文件夹,my-app,并用vscode打开然后到根目录底下创建packa

    2024年02月14日
    浏览(46)
  • uniapp开发云打包详细流程(包含安卓Android和苹果IOS)

    Hbuilder在菜单栏选择“发行”,选择“原生App-云打包”,使用云打包不需要学习Android Studio的使用,节省开发时间,但是云打包需要排队(排队人数越多等待时间越长),每个账号每天限制打包5次。                     1.2.1、安卓包名 在项目中打开manifest.json文件,基础配

    2024年02月08日
    浏览(57)
  • Mac 电脑系统重装(详细流程,包含 Intel、Apple M系列)

    重点:在刷机之前,先退出当前电脑的 Apple 账号 登录,确保解除账号绑定的环境下在进行刷机, 为啥需要重点提醒,其实也是可以在刷机过程中输入当前绑定电脑的账号密码后,继续刷机的。 但是,博主有点背,也就是我使用一个手机号注册的 Apple 账号 ,登录了电脑,然

    2024年02月13日
    浏览(40)
  • vue3 webpack打包流程及安装 (1)

    --------------------------------------------------------------------------------------------------------------------------------- 报错      跟着安装报错  后来查了才知道  是因为 webpack 版本有问题 安装的时候看好 webpack的版本过高  产生的错误 需要卸掉从新安装 webpack -v  查看 版本号 ------------------

    2024年02月09日
    浏览(71)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包