前言
我们使用Facebook
官方提供的react
脚手架工具create-react-app
初始化 react
项目时,打开package.json
观察到:
一、去node_modules中找找
命令行相关脚本
1. 根据npm
知识,命令行相关代码都是bin目录
下的。
2. 继续打开react-scripts.js文件
:
3. 去到/scripts目录下看看:
4. 打开build.js文件:
运行构建命令npm run build
试试:
5. init.js文件
init 是专门用来初始化项目的,在项目初始化完成之后,就再也没有用了。
6. start.js
start 是启动开发调试环境的。
webpack-dev-server
是一个webpack的插件,专门用来启动本地调试服务器的。还可以使用它来实现数据接口的mock。
输入npm start
试试:
7. test.js
顾名思义,这是专门用来执行单元测试的。
8. eject.js
用eject来解构编译脚本。
正是因为有了react-scripts
的集成化能力,项目目录才会如此简洁。
但这也限制了灵活性,使得我们很难对其内部做出修改。
而eject
可以将react-scripts
中几乎全部的逻辑代码,释放到项目的根目录中,从而允许我们自行修改。
运行命令行npm run eject
,会询问是否确认?这是不可逆的。输入y
这时候再次打开package.json
,会看到dependencies
多了很多,scripts
中的eject
没有了: