首页 > 其他分享 >craco-less使用问题

craco-less使用问题

时间:2024-09-20 09:23:20浏览次数:8  
标签:node ... less modules js craco 使用

craco-less使用问题

问题背景

前端是用React搭建,使用craco配置,相关库或插件版本如下

 "@craco/craco": "^7.1.0",
  "react-scripts": "^5.0.1",
  "craco-less": "^3.0.1"

在生产环境,Node.js构建时,报错如下

Error: Found an unhandled loader in the developement webpack config: node_modules/style-loader/index.js

This error probably occurred because you updated react-scripts or craco. Please try updating craco-less to the latest version:

   $ yarn upgrade craco-less

Or:

   $ npm update craco-less

If that doesn't work, craco-less needs to be fixed to support the latest version.
Please check to see if there's already an issue in the FormAPI/craco-less repo:

   * https://github.com/FormAPI/craco-less/issues?q=is%3Aissue+webpack+unknown+rule

If not, please open an issue and we'll take a look. (Or you can send a PR!)

You might also want to look for related issues in the craco and create-react-app repos:

   * https://github.com/sharegate/craco/issues?q=is%3Aissue+webpack+unknown+rule
   * https://github.com/facebook/create-react-app/issues?q=is%3Aissue+webpack+unknown+rule

    at throwUnexpectedConfigError (.../node_modules/@craco/craco/lib/plugin-utils.js:29:11)
    at throwError (.../node_modules/craco-less/lib/craco-less.js:14:5)
    at .../node_modules/craco-less/lib/craco-less.js:119:7
    at Array.forEach (<anonymous>)
    at Object.overrideWebpackConfig (.../node_modules/craco-less/lib/craco-less.js:51:11)
    at overrideWebpack (.../node_modules/@craco/craco/lib/features/plugins.js:42:40)
    at .../node_modules/@craco/craco/lib/features/plugins.js:64:29
    at Array.forEach (<anonymous>)
    at applyWebpackConfigPlugins (.../node_modules/@craco/craco/lib/features/plugins.js:63:29)
    at mergeWebpackConfig (.../node_modules/@craco/craco/lib/features/webpack/merge-webpack-config.js:67:30)

解决方案

尝试在craco-less的 github 和网上寻找方法,设置NODE_NODE_ENV依旧无效,项目中用到less无非是想使用CSS Module,实现 CSS 的局部使用。craco-less最近的一次更新还是 8 个月之前,且最新版本上仍然有很多 issues 未被解决,因此放弃craco-less,改用craco-css-modules

craco-css-modules的参考地址:https://github.com/crazyurus/craco-css-modules

craco.config.js配置如下

const CracoCSSModules = require("craco-css-modules");

module.exports = {
  plugins: [
    {
      plugin: CracoCSSModules,
    },
  ],
  devServer: {
    port: 8081,
  },
};

使用

实现CSS Module前后区别:

.bgImg {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
// Before
import styles from "./index.module.less";

// After
import styles from "./index.css";

结果

本地运行和生产环境的流水线都没有问题

效果如下:
在这里插入图片描述

标签:node,...,less,modules,js,craco,使用
From: https://blog.csdn.net/m0_46281382/article/details/142338200

相关文章

  • 管理 Windows 实例的高效方法 —— 使用 WindowExtensions 类
    管理Windows实例的高效方法——使用WindowExtensions类在现代的Windows应用程序开发中,尤其是使用WPF(WindowsPresentationFoundation)时,管理多个窗口实例是一个常见的需求。为了确保应用程序的用户体验流畅且一致,开发者常常需要控制窗口的创建、显示以及位置管理。本文......
  • 网络安全C10-2024.9.15-Nmap、Xray、Nessus和AWVS使用扫描
    1、安装并使用Nmap扫描一个地址(本机、VPS、虚拟机环境都可以),提供扫描结果截图nmap下载安装:https://nmap.org/download#windowsnmap概述:Nmap(“NetworkMapper<网络映射器>”)是一款开放源代码的网络探测和安全审核的工具。Nmap输出的是扫描目标的列表,以及每个目标的补充信息,......
  • 帝国CMS使用中常见的英文错误提示介绍与解答
    帝国CMS在使用过程中可能会遇到一些英文错误提示,这些错误提示通常包含了问题的原因和可能的解决方向。下面列举了一些常见的英文错误提示及其可能的解决方法:1."Parseerror:syntaxerror"原因:这通常表明PHP在解析脚本时遇到了语法错误。解决方法:检查错误提示中的文件和行号,......
  • 使用pyenv和venv管理python环境
    1.pyenv与venv的关系pyenv是一个用于管理多个Python版本的工具,主要专注于解决不同项目需要不同Python版本的问题。venv是Python内置的虚拟环境管理工具,主要用于创建隔离的Python环境,帮助避免在不同项目之间发生包依赖冲突。总结:pyenv用于安装Python的多个版本,venv用于隔离......
  • 集合框架底层使用了什么数据结构
    1.是什么        集合框架(CollectionFramework)是Java标准库的一部分,它提供了一系列接口和实现类,用于处理不同类型的集合。这些集合可以用于存储和操作对象,如列表、集合、映射等。集合框架的底层数据结构是多种多样的,具体取决于集合实现类的选择。1.List(列表)Array......
  • 6. 什么是MySQL的事务?如何在Java中使用Connection接口管理事务?
    事务(Transaction)是一组可以看作一个逻辑单元的操作,这组操作要么全部成功,要么全部失败。事务确保了数据库操作的原子性、一致性、隔离性和持久性,这些性质统称为ACID特性:原子性(Atomicity):事务中的所有操作要么全部完成,要么全部不完成,不会出现部分完成的情况。如果事务中某个......
  • Android轻量级RTSP服务使用场景分析和设计探讨
    技术背景好多开发者,对我们Android平台轻量级RTSP服务模块有些陌生,不知道这个模块具体适用于怎样的场景,有什么优缺点,实际上,我们的Android平台轻量级RTSP服务模块更适用于内网环境下、对并发要求不高的场景,实现低成本、低延迟的音视频实时传输。本文就上述问题,做个技术探讨,先说适用场......
  • 解决使用nvm ls命令没有出现*的问题
    一、引言在输命令的时候不知道手误写了什么导致node命令用不了,查看环境变量配的nvm对应的路径没问题,试过网上说的修改文件夹名字但是没有用!!输入nvmls显示已下载的node版本,发现前面没有* 输入nvmuse使用其中的一个版本,没有报错一切正常!但是重新输入nvmls依旧没有......
  • mysql容器使用
    一、镜像使用的部分介绍创建一个简单的mysql容器dockerrun--namesome-mysql-eMYSQL_ROOT_PASSWORD=my-secret-pw-dmysql:tag宿主机没有安装msql的情况下,可以通过docker命令连接mysql通过容器连接远程mysqldockerrun-it--rmmysqlmysql-hsome.mysql.host-usom......
  • 如何使用Open UI异地远程办公设计前端网页无需公网IP
    文章目录前言1.本地部署OpenUI1.1安装Git、Python、pip1.2安装OpenUI2.本地访问OpenUI3.安装Cpolar内网穿透4.实现公网访问OpenUI5.固定OpenUI公网地址前言本篇文章介绍如何在Windows系统本地部署OpenUI并结合Cpolar内网穿透工具配置公网地址,轻松实......