React 是用来做前端开发的一套非常强大的框架,仅仅就搭建 React 开发环境来讲其实就比较复杂,如果你对 Webpack 和 Nodejs 脚本非常熟悉,可能会考虑从头搭建自己的 React 开发环境。但是对于新人,最佳的策略是采用 Facebook 官方提供的 Create-react-app https://github.com/facebook/create-react-app 这个工具来创建项目脚手架代码,这样开发环境问题也就解决了。
我们先来把这个 create-react-app 工具安装上。
npm i -g create-react-app
i
是 install 的简写,-g
表示 global ,全局安装。一般如果包里面包含系统命令,就需要全局安装。这里补充一下,npm 装包的时候,如果不加 -g
选项,就默认是局部安装,局部安装的包会存放到项目内的 node_modules
文件夹内,作用范围就是这个项目。而对应的全局安装的包不存在任何项目内,一次安装,全局可用,所以叫做全局安装。
create-react-app my-app
接下来,重新打开一下命令行窗口,就可以找到 create-react-app
这个命令了。运行命令,创建名为 my-app
的项目。
cd my-app
npm start
进入项目,运行 npm start
就可以把环境运行起来了。这里 start
是一个 npm script ,npm 脚本,可以到 package.json 中的 scripts 一项下找到这个脚本。
package.json
"start": "react-scripts start",
实际执行 npm start
的时候,真正得到执行的是 react-scripts
,而这其中执行了哪些任务我们就不必深究了,属于 create-react-app
帮我们提供的开发环境的一部分。
这样,浏览器中就可以看到项目运行起来了。
下面来粗略的介绍一下,脚手架代码的基本结构。
my-app
├── README.md
├── node_modules
├── package.json
├── .gitignore
├── public
│ ├── favicon.ico
│ ├── index.html
│ └── manifest.json
└── src
├── App.css
├── App.js
├── App.test.js
├── index.css
├── index.js
├── logo.svg
└── serviceWorker.js
关于脚手架代码的基本结构,我们就介绍到这里了。
环境中包含的功能很多,我们挑几个比较重要的简单说说。
首先是自动刷新和报错功能。项目启动好之后,修改一下代码,页面就会自动刷新。如果遇到 bug ,网页上还有命令行中就都可以看到报错信息。
另外,对于 ES6 的某些新特性,浏览器是不支持的,但是在这个环境下,就可以放心使用,因为环境会自动把 ES6 转换成浏览器支持的 JS 代码。甚至包括一些比 ES6 更新的版本中的语言特性,例如对象展开运算符,环境也都可以帮我们转换。
其他很多功能也都是很实用的。例如环境可以自动给 CSS 添加厂商前缀,保证浏览器兼容。自带测试环境,自带对 TypeScript 和 Flow 的支持。
关于环境中都包含哪些功能,官方 README 中有一个详细的列表 https://github.com/facebook/create-react-app#whats-included ,这里我们就不一一说明了。
这节我们通过 Create-react-app 这个脚手架工具,把 React 的开发环境跑了起来。但是,能提供 React 开发环境的工具不只是这一个,Peter 自己常用的有另外两个 https://www.gatsbyjs.com/ 和 https://react-static.js.org/ ,也都非常好用,而且带有各自独特的功能。但是最通用和对新手友好的还是 Create-react-app 。