当前位置: 首页 > 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

http://www.lryc.cn/news/217035.html

相关文章:

  • @RunWith(SpringRunner.class)注解的作用
  • 深入理解网络IO复用并发模型
  • 二叉树采用二叉链表存储:编写计算整个二叉树高度的算法
  • antd Cascader级联菜单无法赋值回显问题
  • 在react中使用redux react-redux的使用demo
  • Flutter 06 动画
  • 优化改进YOLOv5算法之添加MS-Block模块,有效提升目标检测效果(超详细)
  • 【论文阅读】Iterative Poisson Surface Reconstruction (iPSR) for Unoriented Points
  • 通过akshare获取股票分钟数据
  • 【论文阅读笔记】Traj-MAE: Masked Autoencoders for Trajectory Prediction
  • MySQL - Zero date value prohibited
  • 设计模式——迭代器模式(Iterator Pattern)+ Spring相关源码
  • 【word技巧】ABCD选项如何对齐?
  • 如何在uni-app小程序端实现长按复制功能
  • 基于springboot实现在线考试平台项目【项目源码+论文说明】计算机毕业设计
  • 【移远QuecPython】EC800M物联网开发板的内置GNSS定位获取(北斗、GPS和GNSS)
  • 软件设计师2016下半年下午——KMP算法和装饰设计模式
  • Android Studio run main()方法报错
  • CM3D2 汉化杂记
  • 分类预测 | Matlab实现SMA-KELM黏菌优化算法优化核极限学习机分类预测
  • linux的环境安装以及部署前后端分离后台接口
  • 解决mysql数据库root用户看不到库
  • 【LeetCode】117. 填充每个节点的下一个右侧节点指针 II
  • 《研发效能(DevOps)工程师》课程简介(三)丨IDCF
  • 主动激活木马加密流量分析
  • 关于单片机CPU如何控制相关引脚
  • [概述] 获取点云数据的仪器
  • 路由器基础(八):策略路由配置
  • Java 零碎知识点
  • 多模态论文阅读之BLIP