Create React App 中文文档

Create React App 中文文档

  • 快速入门
  • 帮助
  • GitHub

›构建 App

Welcome

  • 关于文档

快速入门

  • 入门
  • 文件夹结构
  • 可用的 Scripts
  • 支持的浏览器和特性
  • 更新到新版本

开发

  • 编辑器设置
  • 隔离开发组件
  • 分析 Bundle (包) 大小
  • 在开发环境中使用 HTTPS

样式和资源

  • 添加一个样式表
  • 添加 CSS Modules
  • 添加 Sass
  • PostCSS(后处理 CSS)
  • 添加图片,字体和文件
  • 使用 public 文件夹
  • 代码拆分(Code Splitting)

构建 App

  • 安装依赖项
  • 导入组件
  • 使用全局变量
  • 添加 Bootstrap
  • 添加 Flow
  • 添加 TypeScript
  • 添加 Relay
  • 添加 Router(路由)
  • 环境变量
  • 制作渐进式 Web 应用程序(PWA)
  • 创建生产构建

测试

  • 运行测试
  • 调试测试

后端集成

  • 在开发环境中代理 API 请求
  • 使用AJAX请求获取数据
  • 集成后端 API
  • Title & Meta 标签

部署

  • 部署

高级用法

  • 我可以使用 Decorators 吗?
  • 预渲染静态 HTML
  • 高级配置
  • Ejecting 的替代方案

支持

  • 故障排除
Edit

创建生产构建

npm run build 会创建一个 build 目录,用于存放生产构建。build/static 目录中将是你的 JavaScript 和 CSS 文件。 build/static 中的每个文件名都包含文件内容的唯一哈希值。文件名中的此哈希启用 长期缓存技术 。

运行新创建的 Create React App 应用程序的生产版本时,会生成3个 .js 文件(称为 chunks ,理解为“块”),并将其放置在 build/static/js 目录中:

main.[hash].chunk.js

  • 这是你的 应用程序 代码。 App.js 等。

1.[hash].chunk.js

  • 这是 vendor(第三方库) 的代码,其中包含你在 node_modules 中导入的模块。拆分 vendor(第三方库) 和 应用程序 代码的潜在优势之一是启用长期缓存技术 以提高应用程序加载性能。由于 vendor(第三方库) 代码的更改频率低于实际应用程序代码,因此浏览器将能够单独缓存它们,并且每次应用程序代码更改时都不会重新下载它们。

runtime~main.[hash].js

  • 这是 webpack runtime(运行时) 逻辑 chunk ,用于加载和运行你的应用程序。默认情况下,此内容将嵌入 build/index.html 文件中以保存其他网络请求。你可以通过指定我们的 高级配置 中记录的INLINE_RUNTIME_CHUNK=false 来选择不这样做,这将加载此 chunk 而不是将其嵌入 index.html 。

如果你使用 code splitting(代码拆分) 来拆分应用程序,这将在 build/static 文件夹中创建额外的 chunks 。

静态文件缓存

build/static 目录中的每个文件都会有一个基于文件内容生成的唯一哈希 附加到文件名,这允许你使用 积极的缓存技术 来避免浏览器重新下载那些文件内容没有改变的资源。如果文件的内容在后续构建中发生更改,则生成的文件名哈希将会不同。

为了向用户提供最佳性能,最佳做法是为 index.html 以及 build/static 中的文件指定 Cache-Control 标头。此标头允许你控制浏览器和 CDN 将缓存静态资产的时间长度。如果你不熟悉 Cache-Control 的功能,请参阅 这篇文章 以获得精彩的介绍。

使用 Cache-Control: max-age=31536000 用于 build/static 资源,而 Cache-Control: no-cache 用于其他所有内容是一个安全有效的起点,可确保用户的浏览器始终检查更新的 index.html 文件,并将缓存所有 build/static 文件一年。请注意,你可以安全地在 build/static 上使用一年到期,因为文件内容哈希嵌入到文件名中。

← PreviousNext →
  • 静态文件缓存
Create React App 中文文档
文档
快速入门学习 React
社区
Stack OverflowSpectrumTwitter
更多
GitHubStar
Facebook Open Source
Copyright © 2018 Facebook Inc.