当前位置: 首页 > news >正文

React项目使用craco修改webpack配置

React项目使用craco

通过Create React App(CRA)搭建的react项目,webpack的相关配置是被默认隐藏起来的,如果想修改关于webpack的相关配置,有两种方式:

  • npm run eject
  • craco
npm run eject

npm run eject,会将原本creat react app对webpack,babel等相关配置的封装弹射出来,如果我们要将creat react app配置文件进行修改,现有目录下是没有地方修改的,此时,我们就可以通过eject命令将原本被封装到脚手架当中的命令弹射出来,然后就可以在项目的目录下看到很多配置文件。但这个操作是不可逆的,我们无法再通过其他方式将这些暴露出来的配置还原回去。

craco

通过 craco,开发者可以在不弹出 CRA 的配置的情况下,可以使用自定义的 webpack 插件、babel 插件和其他工具,以满足项目的特定需求。例如,可以添加自定义的 webpack loader,配置自定义的 babel preset 或 plugin,或者修改 webpack 的输出路径等。

安装carco
npm install @craco/craco
npm install craco-less
在项目的根目录创建craco.config.js
const CracoLessPlagin = require('craco-less')
const path = require('path')
const resolve = (dir) => path.resolve(__dirname, dir)
module.exports = {plugins: [{ plugin: CracoLessPlagin }],// 修改 webpack 配置webpack: {alias: {'@': resolve('src'),comp: resolve('src/components')}},// 修改 babel 配置babel: {// ...},// 修改 eslint 配置eslint: {// ...},devServer: {proxy: {}}
};
修改 package.json 文件
 "scripts": {"start": "craco start","build": "craco build","test": "craco test","eject": "react-scripts eject"}
修改tsconfig.json

添加

"paths": {"@/*": ["./src/*"]}
在项目中可以使用 @ 代替 ./src 导入文件

import '@/App.css';

可能遇到的问题

报错:
“@babel/plugin-proposal-private-property-in-object” package without
declaring it in its dependencies. This is currently working because
“@babel/plugin-proposal-private-property-in-object” is already in your
node_modules folder for unrelated reasons, but it may break at any time.

解决办法:
npm install --save-dev @babel/plugin-proposal-private-property-in-object

相关文章:

React项目使用craco修改webpack配置

React项目使用craco 通过Create React App(CRA)搭建的react项目,webpack的相关配置是被默认隐藏起来的,如果想修改关于webpack的相关配置,有两种方式: npm run ejectcraco npm run eject npm run eject…...

@RunWith(SpringRunner.class)注解的作用

通俗点: RunWith(SpringRunner.class)的作用表明Test测试类要使用注入的类,比如Autowired注入的类,有了RunWith(SpringRunner.class)这些类才能实例化到spring容器中,自动注入才能生效 官方点: RunWith 注解是JUnit测…...

深入理解网络IO复用并发模型

本文主要介绍服务端对于网络并发模型以及Linux系统下常见的网络IO复用并发模型。文章内容一共分为两个部分。 第一部分主要介绍网络并发中的一些基本概念以及我们Linux下常见的原生IO复用系统调用(epoll/select)等。第二部分主要介绍并发场景下常见的网…...

二叉树采用二叉链表存储:编写计算整个二叉树高度的算法

二叉树采用二叉链表存储:编写计算整个二叉树高度的算法 (二叉树的高度也叫二叉树的深度) 代码思路: 首先你要明白什么是树的高度,简言之就是树有多少层,如下图: 下面这棵树的高度就是4 首先我们观察根节点&#xff0…...

antd Cascader级联菜单无法赋值回显问题

说起来太丢人了,自己还拿官网例子在这里调试半天,最后发现是一个特别小儿科的问题哈哈 Cascader级联数据是服务端返回然后自己处理过的,使用了cascader的fileNames属性重置字段名,最后发现服务端回传的数据无法赋值回显在组件上&…...

在react中使用redux react-redux的使用demo

前言: redux是一种状态管理工具,可以存储和操作一些全局或者很多组件需要使用的公共数据。 平心而论,redux的使用对于新上手来说不太友好,多个依赖包的,多种api的结合使用,相对来说比做同样一件事的vuex用起来比较麻烦.不过,熟能生巧,用多了也就习惯了,下面是个人的一个demo,…...

Flutter 06 动画

一、动画基本原理以及Flutter动画简介 1、动画原理: 在任何系统的Ul框架中,动画实现的原理都是相同的,即:在一段时间内,快速地多次改变Ul外观;由于人眼会产生视觉暂留,所以最终看到的就是一个…...

优化改进YOLOv5算法之添加MS-Block模块,有效提升目标检测效果(超详细)

目录 前言 1 MS-Block原理 1.1 Multi-Scale Building Block Design 1.2 Heterogeneous Kernel Selection Protocol 2 YOLOv5算法中加入MS-Block...

【论文阅读】Iterative Poisson Surface Reconstruction (iPSR) for Unoriented Points

文章目录 声明作者列表核心思想归纳算法流程机器翻译声明 本帖更新中如有问题,望批评指正!如果有人觉得帖子质量差,希望在评论中给出建议,谢谢!作者列表 FEI HOU(侯飞)、CHIYU WANG、WENCHENG WANG:中国科学院大学 HONG QIN CHEN QIAN、YING HE 核心思想归纳 当一条从…...

通过akshare获取股票分钟数据

参考:https://blog.csdn.net/qnloft/article/details/131218295 import akshare as ak 个股的 df ak.stock_zh_a_hist_min_em(symbol“000001”, start_date“2023-11-03 09:30:00”, end_date“2023-11-03 15:00:00”, period‘1’, adjust‘’) print(df) date_info df[‘…...

【论文阅读笔记】Traj-MAE: Masked Autoencoders for Trajectory Prediction

Abstract 通过预测可能的危险,轨迹预测一直是构建可靠的自动驾驶系统的关键任务。一个关键问题是在不发生碰撞的情况下生成一致的轨迹预测。为了克服这一挑战,我们提出了一种有效的用于轨迹预测的掩蔽自编码器(Traj-MAE),它能更好地代表驾驶…...

MySQL - Zero date value prohibited

问题: timestamp字段报Caused by: com.mysql.cj.exceptions.DataReadException: Zero date value prohibited 原因: timestamp字段存入了0值, 超出了最小值1900-01-01 00:00:00, 转Java对象的时候报错 解决: 1.修复或删除原数据 2. mysqlurl 中添加zeroDateTimeBehaviorconve…...

设计模式——迭代器模式(Iterator Pattern)+ Spring相关源码

文章目录 一、迭代器模式二、例子2.1 菜鸟例子2.1.1 定义迭代器接口2.1.2 定义迭代对象接口——用于返回一个迭代器2.1.3 实现 迭代对象 和 迭代器2.1.4 使用 2.2 JDK源码——ArrayList2.3 Spring源码——DefaultListableBeanFactory 三、其他设计模式 一、迭代器模式 类型&am…...

【word技巧】ABCD选项如何对齐?

使用word文件制作试卷,如何将ABCD选项全部设置对齐?除了一直按空格或者Tab键以外,还有其他方法吗?今天分享如何将ABCD选项对齐。 首先,我们打开【替换和查找】,在查找内容输入空格,然后点击全部…...

如何在uni-app小程序端实现长按复制功能

在开发小程序应用中,常常需要使用到长按复制功能。本文将介绍如何在uni-app小程序端实现长按复制功能。 uni-app是一个跨平台的开发框架,可以基于vue.js语法开发小程序、H5、APP等多个平台的应用。uni-app提供了一些内置组件和API,可以方便地…...

基于springboot实现在线考试平台项目【项目源码+论文说明】计算机毕业设计

基于springboot实现在线考试演示 摘要 网络的广泛应用给生活带来了十分的便利。所以把在线考试管理与现在网络相结合,利用java技术建设在线考试系统,实现在线考试的信息化。则对于进一步提高在线考试管理发展,丰富在线考试管理经验能起到不少…...

【移远QuecPython】EC800M物联网开发板的内置GNSS定位获取(北斗、GPS和GNSS)

【移远QuecPython】EC800M物联网开发板的内置GNSS定位获取(北斗、GPS和GNSS) 测试视频(其中的恶性BUG会在下一篇文章阐述): 【移远QuecPython】EC800M物联网开发板的内置GNSS定位的恶性BUG(目前没有完全的…...

软件设计师2016下半年下午——KMP算法和装饰设计模式

下面是提供的代码的逐行注释&#xff0c;以及对next数组在KMP算法中的作用的解释&#xff1a; #include <iostream> #include <vector> using namespace std;void buildNextArray(const char* pattern, vector<int>& next) {int m strlen(pattern); …...

Android Studio run main()方法报错

在studio中想要测试某个功能直接执行main()方法报错如下&#xff1a; * What went wrong: A problem occurred configuring project :app. > Could not create task :app: **** .main().> SourceSet with name main not found.解决方案&#xff1a; 执行run ** main() w…...

CM3D2 汉化杂记

老物难找资源&#xff0c;于是尝试自己汉化&#xff0c;皆源于有一个好的汉化插件。 资源&#xff1a;LMMT 工具&#xff1a;CM3D2.SubtitleDumper.exe&#xff0c;有道翻译(可以翻译文档)&#xff0c;Libreoffice(文档、表格) cmd&#xff08;资源管理器的结果可以拖进去&…...

SiameseUIE详细步骤:cd .. + cd nlp_structbert_siamese-uie_chinese-base执行逻辑

SiameseUIE详细步骤&#xff1a;cd .. cd nlp_structbert_siamese-uie_chinese-base执行逻辑 1. 为什么需要这个执行顺序 当你拿到一个已经部署好的AI模型镜像&#xff0c;第一件事就是找到正确的打开方式。cd .. 和 cd nlp_structbert_siamese-uie_chinese-base 这个看似简…...

Z-Image Turbo提示词调试技巧:从失败案例反推有效表达逻辑

Z-Image Turbo提示词调试技巧&#xff1a;从失败案例反推有效表达逻辑 1. 为什么提示词调试如此重要 如果你用过AI绘画工具&#xff0c;一定遇到过这种情况&#xff1a;脑子里想的是赛博朋克少女&#xff0c;生成出来的却是模糊不清的怪异图像。这不是模型的问题&#xff0c;…...

AI驱动的Vue3应用开发平台深入探究(十):物料系统之内置组件库

内置组件库&#xff08;Element Plus、Ant Design Vue、Vant&#xff09; VTJ 通过其统一的物料系统架构&#xff0c;与三个流行的 Vue 组件库提供了全面的集成。这一抽象层使开发者能够利用熟悉的组件模式&#xff0c;同时保持低代码的可扩展性和跨库的可移植性。该系统将组件…...

如何用开源OCR突破效率瓶颈?Umi-OCR三大核心优势深度解析

如何用开源OCR突破效率瓶颈&#xff1f;Umi-OCR三大核心优势深度解析 【免费下载链接】Umi-OCR Umi-OCR: 这是一个免费、开源、可批量处理的离线OCR软件&#xff0c;适用于Windows系统&#xff0c;支持截图OCR、批量OCR、二维码识别等功能。 项目地址: https://gitcode.com/G…...

告别信号盲猜!手把手教你用ESP32的Scan和iperf给家里WiFi做个‘体检’

用ESP32打造家庭WiFi信号检测仪&#xff1a;从扫描到吞吐测试全攻略 你是否遇到过在家追剧时视频卡顿、智能设备频繁掉线的困扰&#xff1f;墙角的摄像头总是连接不稳定&#xff0c;书房里的温湿度传感器数据时有时无——这些问题很可能与WiFi信号覆盖不均有关。今天我们将利用…...

GuwenBERT:重构古文智能理解的3个技术维度

GuwenBERT&#xff1a;重构古文智能理解的3个技术维度 【免费下载链接】guwenbert GuwenBERT: 古文预训练语言模型&#xff08;古文BERT&#xff09; A Pre-trained Language Model for Classical Chinese (Literary Chinese) 项目地址: https://gitcode.com/gh_mirrors/gu/g…...

实战指南:在快马平台用llmfit打造适用于移动端的轻量级文本生成模型

今天想和大家分享一个实战项目&#xff1a;如何在移动端部署轻量级文本生成模型。最近在做新闻类App开发时&#xff0c;遇到一个需求——根据用户输入的关键词自动生成吸引眼球的新闻标题。由于要在手机端实时运行&#xff0c;模型必须足够轻量&#xff0c;这就引出了我们今天的…...

企业级大数据产品架构设计指南

企业级大数据产品架构设计指南&#xff1a;从概念到落地的完整方案 标题选项 企业级大数据架构设计全攻略&#xff1a;从0到1构建可扩展的数据平台大数据产品架构设计指南&#xff1a;如何打造高性能、高可用的企业级解决方案从理论到实践&#xff1a;企业级大数据产品架构设计…...

告别改板焦虑!手把手教你用Ansys Slwave 2022R2搞定PCB信号完整性仿真(附S参数导出Pspice全流程)

告别改板焦虑&#xff01;Ansys Slwave 2022R2信号完整性仿真实战指南 在高速PCB设计领域&#xff0c;信号完整性问题如同悬在硬件工程师头顶的达摩克利斯之剑。据统计&#xff0c;超过60%的硬件改板需求源于信号完整性问题未被提前发现。本文将带您深入掌握Ansys Slwave 2022R…...

西门子1517F与KTP精致屏:主机厂程序框架探秘

西门子1517F搭配KTP精致屏 主机厂程序框架模板&#xff0c;程序结构清晰&#xff0c;主流程采用顺控器编写&#xff0c;包含各种常用功能块的手自动以及手动调用&#xff0c;HMI画面多采用多路复用&#xff0c;大大缩短编程时间&#xff0c; 组态从站有拧紧枪&#xff0c;以及从…...