当前位置: 首页 > 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 等工具来定制配置。

相关文章:

  • Kotlin 内联函数(Inline Functions):性能优化与实战指南
  • CSS3 遮罩
  • 嵌入式Linux I2C驱动开发详解
  • 架构、构架、结构、框架之间有什么区别?|系统设计|系统建模
  • Golang 应用的 CI/CD 与 K8S 自动化部署全流程指南
  • TCPIP详解 卷1协议 九 广播和本地组播(IGMP 和 MLD)
  • geoserver发布arcgis瓦片地图服务(最新版本)
  • cursor 出现 unauthorized request
  • 编译原理AST以Babel为例进行解读、Webpack中自定义loader与plugin
  • 主流编程语言中ORM工具全解析
  • 区块链钱包开发全解析:从架构设计到安全生态构建
  • edge设置位IE模式打开网页
  • BMIDE部署失败 BMIDE Deploy failure
  • uniapp使用npm下载
  • WebRTC:去中心化网络P2P框架解析
  • DICOM 网络服务实现:医学影像传输与管理的技术实践
  • Node和npm初学
  • GitHub 趋势日报 (2025年05月11日)
  • M0基础篇之串口
  • AI Agent开发第64课-DIFY和企业现有系统结合实现高可配置的智能零售AI Agent
  • 支持企业增强战略敏捷更好发展,上海市领导密集走访外贸外资企业
  • 小米SU7 Ultra风波升级:数百名车主要求退车,车主喊话雷军“保持真诚”
  • 万科:存续债券均正常付息兑付
  • 美英贸易协议|不,这不是一份重大贸易协议
  • 2025年度十大IP!IP SH荣膺文化综合类TOP10
  • 十三届全国政协经济委员会副主任张效廉被决定逮捕