【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 项目需要自定义配置时的理想选择,平衡了便利性和灵活性。

相关推荐
朝朝辞暮i4 小时前
C++ 第 23 课:class —— 开始真正进入面向对象
开发语言·c++·算法
小师兄吃牛肉5 小时前
C语言篇:宏
c语言·开发语言
郑同学的笔记5 小时前
【c++随笔28】strcmp 和 memcmp对比
开发语言·c++
言乐66 小时前
Python根据无法识别搜索词找出可能输入内容模型
开发语言·python·django·virtualenv·pygame
weixin_307779136 小时前
有限产能智能排产与动态重排智能体:从需求解构到技术实现
开发语言·人工智能·算法·架构
kakakahahahaha6 小时前
Windows C盘临时文件清理:%temp%、Windows Temp、Prefetch、Windows.old与hiberfil.sys处理指南
c语言·开发语言·windows
朝朝辞暮i6 小时前
C++ 第 27 课:智能指针 shared_ptr
开发语言·c++·算法
沙漠之主6 小时前
C++编程教学设计资料:从入门到实战的完整课程方案
java·前端·c++
hasty6 小时前
不上传新包,也能改变用户拿到的版本:npm dist-tag 的 OIDC 权限治理
前端·npm·node.js
朝朝辞暮i7 小时前
C++ 第 29 课:回调函数 Callback
开发语言·c++·算法