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

扩展:React 项目执行 yarn eject 后的 config 目录结构详解

扩展:React 项目执行 yarn eject 后的 config 目录结构详解

  • 什么是 yarn eject?
  • React 项目执行 yarn eject 后的 config 目录结构详解
    • 📁 config 目录结构
    • 各文件作用详解
      • env.js
      • getHttpsConfig.js
      • modules.js
      • paths.js
      • webpack.config.js
      • webpackDevServer.config.js
      • jest/ 目录(可选)
    • webpack/ 子目录:persistentCache/
    • 总结

什么是 yarn eject?

yarn eject 是 Create React App(简称 CRA)提供的一条命令,用于将项目从“封装模式”转为“完全可配置模式”。
执行后,CRA 默认隐藏的构建配置(如 Webpack、Babel、ESLint 等)会被暴露到项目中。

React 项目执行 yarn eject 后的 config 目录结构详解

当我们在使用 create-react-app 创建的项目中执行 yarn eject 命令后,隐藏的 Webpack 配置将被暴露出来。此时会在项目根目录生成一个 config/ 目录,其中包含构建、开发、测试所需的配置文件。

本文将结合项目中 config/ 目录下的文件结构进行逐一说明:

📁 config 目录结构

config/
├── jest/
├── webpack/
│   └── persistentCache/
├── env.js
├── getHttpsConfig.js
├── modules.js
├── paths.js
├── webpack.config.js
├── webpackDevServer.config.js

各文件作用详解

env.js

  • 用途:用于加载并配置环境变量,如 .env, .env.production, .env.development 等。
  • 说明:通过 process.env.NODE_ENV 判断当前运行环境,并将环境变量注入到 webpack 构建流程中。
  • 常见用途:
    • 设置 API 根路径
    • 配置自定义变量如 REACT_APP_*

getHttpsConfig.js

  • 用途:获取 HTTPS 相关配置。
  • 说明:在本地开发时,如果你希望使用 HTTPS(比如使用自签名证书),这个文件会读取相应配置(如 .env 中的 HTTPS=true)。

modules.js

  • 用途:Webpack 打包中用到的模块路径配置。
  • 说明:用于配置模块解析规则,比如:
    • 支持扩展文件后缀(如 .js, .jsx, .ts, .tsx
    • 支持模块路径别名(alias)

paths.js

  • 用途:集中管理项目路径信息。
  • 说明:提供构建过程中常用路径(如 src, public, build 等),可被其他配置文件引入使用,确保路径一致性。
  • 示例路径:
    • appSrc:源码路径(默认 src/
    • appBuild:构建输出目录(默认 build/

webpack.config.js

  • 用途:Webpack 的主配置文件。
  • 内容包含:
    • Babel 加载器配置(JSX、ES6+ 转译)
    • CSS / SASS / 图片等资源加载规则
    • 插件配置(如 HtmlWebpackPlugin, DefinePlugin
    • 分环境(开发、生产)配置分离
  • 📌 此文件是整个构建的核心,若需自定义构建行为(如修改 Loader、Alias、优化策略),修改此处。

webpackDevServer.config.js

  • 用途:用于配置 webpack-dev-server(开发服务器)。
  • 说明:
    • 配置本地开发端口、热更新(HMR)、代理(proxy)、浏览器自动打开等行为。
    • 可以实现跨域代理:例如 /api 请求代理到 http://localhost:3001

jest/ 目录(可选)

  • 用途:存放与 Jest 测试框架相关的自定义配置(如果有的话)。
  • 常见配置:
    • setupTests.js:测试前运行的初始化脚本
    • 覆盖默认 Jest 配置或扩展测试行为

webpack/ 子目录:persistentCache/

  • 用途:用于配置 Webpack 持久缓存(Persistent Caching)
  • 说明:从 Webpack 5 开始支持持久化缓存,大幅提升二次构建速度。
  • 一般不需要手动修改,除非你对缓存策略有特殊需求。

总结

执行 yarn eject 后暴露的配置文件使你可以完全控制 React 项目的构建流程。虽然灵活性大大提升,但需要具备一定的 Webpack、Babel、Jest 等工具的使用基础,适合对默认行为不满足、有高级自定义需求的开发者。

如果你希望保持简单高效的开发体验,建议不要轻易执行 eject,可以考虑使用 cracoreact-app-rewired 等工具来定制配置。

http://www.xdnf.cn/news/403903.html

相关文章:

  • Spring AI 与 Groq 的深度集成:解锁高效 AI 推理新体验
  • 七、MyBatis-Plus高级用法:最优化持久层开发
  • 从0开始学习大模型--Day07--大模型的核心知识点
  • TCPIP详解 卷1协议 十 用户数据报协议和IP分片
  • 还在用付费?免费它不香吗
  • 集群脑裂危机!金仓数据库双主故障如何紧急救援?​
  • 电商物流管理优化:从网络重构到成本管控的全链路解析
  • OSI 7层模型
  • 详解RabbitMQ工作模式之发布确认模式
  • nvm管理node版本
  • 如何使用Selenium?
  • 【Jenkins简单自动化部署案例:基于Docker和Harbor的自动化部署流程记录】
  • Golang企业级商城高并发微服务实战
  • RNN(循环神经网络)原理与结构
  • 【layout组件 与 路由镶嵌】vue3 后台管理系统
  • SSTI记录
  • 【小记】word批量生成准考证
  • GPU SIMT架构的极限压榨:PTX汇编指令级并行优化实践
  • 图文展示HDFS、YARN、MapReduce三者关系
  • WEBSTORM前端 —— 第3章:移动 Web —— 第1节:平面转换、渐变
  • Redisson在业务处理中失败后的应对策略:保障分布式系统的可靠性
  • 深入掌握Linux计划任务与进程管理:从基础到实战
  • Pandas教程:被冷落的数据结构-Panel
  • 联想 SR550 服务器,配置 RAID 5教程!
  • MySQL创建了一个索引表,如何来验证这个索引表是否使用了呢?
  • window 显示驱动开发-将虚拟地址映射到内存段(二)
  • 探秘高可用负载均衡集群:企业网络架构的稳固基石
  • openwrt 之 procd init 脚本
  • vue3配置element-ui的使用
  • Java SE所需工具与常见类型和运算符介绍