【React】Craco 简介

Craco 简介

Craco (Create React App Configuration Override) 是一个用于自定义 Create React App (CRA) 配置的工具,无需 eject(弹出)项目。

为什么需要 Craco

Create React App 虽然提供了零配置的 React 开发体验,但其配置是封装好的,要自定义配置通常需要:

  1. 运行 npm run eject 暴露所有配置(不可逆)
  2. 或者 fork react-scripts

Craco 提供了第三种选择 - 在不 eject 的情况下覆盖 CRA 的默认配置。

主要功能

  • 覆盖 webpack 配置:修改 loader、plugin 等
  • 覆盖 Babel 配置:添加自定义 presets/plugins
  • 覆盖 PostCSS 配置
  • 覆盖 Jest 配置
  • 覆盖 DevServer 配置

安装使用

  1. 安装:
bash 复制代码
npm install @craco/craco
# 或
yarn add @craco/craco
  1. 在项目根目录创建 craco.config.js 文件

  2. 修改 package.json 中的 scripts:

json 复制代码
{
  "scripts": {
    "start": "craco start",
    "build": "craco build",
    "test": "craco test"
  }
}

配置示例

js 复制代码
// craco.config.js
module.exports = {
  webpack: {
    alias: {
      "@": path.resolve(__dirname, "src/")
    },
    plugins: [
      new MyWebpackPlugin()
    ]
  },
  babel: {
    plugins: ["babel-plugin-styled-components"]
  },
  jest: {
    configure: {
      moduleNameMapper: {
        "^@/(.*)$": "<rootDir>/src/$1"
      }
    }
  }
};

优势

  1. 无侵入性:不需要 eject,保留 CRA 的所有优点
  2. 灵活性:可以按需覆盖特定配置
  3. 社区支持:丰富的插件生态系统(如 craco-antd、craco-less 等)

常见使用场景

  • 添加路径别名
  • 添加自定义 webpack loader/plugin
  • 集成 CSS 预处理器(Less/Sass/Stylus)
  • 自定义 Ant Design 主题
  • 修改构建输出结构

Craco 是 CRA 项目需要自定义配置时的理想选择,平衡了便利性和灵活性。

相关推荐
秦苒&4 分钟前
【C语言指针四】数组指针变量、二维数组传参本质、函数指针变量、函数指针数组
c语言·开发语言·c++·c#
用户54277848515404 分钟前
JavaScript 闭包详解:由浅入深掌握作用域与内存管理的艺术
前端
小小黑0074 分钟前
快手小程序-实现插屏广告的功能
前端·javascript·小程序
用户54277848515405 分钟前
闭包在 Vue 项目中的应用
前端
秋雨雁南飞5 分钟前
C# 字符串占位
开发语言·c#
拾贰_C5 分钟前
[Python | pytorch | torchvision ] models like ResNet... 命名变量说明
开发语言·pytorch·python
傅里叶的耶6 分钟前
C++ Primer Plus(第6版):第三章 处理数据
开发语言·c++
TG:@yunlaoda360 云老大8 分钟前
配置华为云国际站代理商OBS跨区域复制时,如何编辑委托信任策略?
java·前端·华为云
CC.GG25 分钟前
【C++】AVL树
java·开发语言·c++
dlhto31 分钟前
前端登录验证码组件
前端