React脚手架

前端工程的复杂化

  • 如果只是开发小的demo 不需要考虑这些复杂的问题:

    • 目录结构如何组织划分
    • 如何管理文件之间的相互依赖
    • 如何管理第三方模块的依赖
    • 项目发布前如何压缩、打包项目
    • 。。。
  • 前端项目越来越复杂化:

    • css可能是使用less、sass等预处理器进行编写,我们需要将它们转成普通的css才能被浏览器解析
    • JavaScript代码不再只是编写在几个文件中,而是通过模块化的方式,被组成在成百上千个文件中,我们需要通过模块化的技术来管理它们之间的相互依赖
    • 项目需要依赖很多的第三方库,如何更好的管理它们(比如管理它们的依赖、版本升级等)
  • 脚手架的出现,就是帮助我们解决这一系列问题的

  • 脚手架让项目从搭建到开发,再到部署,整个流程变得快速和便捷

包管理工具

npm

  • Node Package Manager

yarn

  • Yarn 是为了弥补 npm 的一些缺陷而出现的.
  • npm install -g yarn

npm和yarn命令对比

![](npm yarn.png)

创建React项目

create-react-app

  • 注意: 项目名称不包含大写

项目结构

  • package.json 配置文件
    • 比如 yarn start 就是执行了配置文件中的
  • gitignore git忽略
  • yarn.lock 记录版本

了解PWA

PWA概念
  • PWA全程 Progressive Web App 渐进式WEB应用
  • 一个PWA应用首先是一个页面 通过Web技术编写出一个网页应用
  • 之后添加上App Manifest 和Service Worker 实现PWA的安装和离线等功能
  • 又称之为Web App
PWA解决的问题
  • 可以将网页添加到主屏幕;
  • 实现离线缓存功能 即使用户手机没有网络依然可以使用一些离线功能
  • 实现了消息推送
  • 以及一系列类似Native App 功能

Webpack

  • webpack是一个现代的JS应用程序的静态模块打包器
  • 当webpack处理应用程序时,会递归构建一个依赖关系图,其中包含应用程序需要的每个模块,然后将所有模块打包成一个或者多个bundle
  • 在开发阶段用任意方式来编写代码 最终webpack会处理打包
脚手架中的Webpack

暴露配置:yarn eject 该操作不可逆

在模块化开发中,我们需要手动的来导入React、ReactDOM,因为它们都是在我们安装的模块中;

import

export