# eject
打开 `package.json` 可以看到以下代码:
```json
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test --env=jsdom",
"eject": "react-scripts eject"
}
```
其中有一个 eject ,是干什么的?
经过查阅,得到了答案:
eject( 弹射) 命令做的事情, 就是把潜藏在 react- scripts 中的一系列技术栈配置都“ 弹射” 到应用的顶层, 然后我们就可以研究这些 配置细节了, 而且可以更灵活地定制应用的配置,不过特别注意,整个过程是不可逆的,
```
npm run eject
```
eject后的目录结构长这样:
:-: ![](http://xiaoyulive.oss-cn-beijing.aliyuncs.com/imgs/react/004.png)
可以看到,webpack配置文件已经被释放了,而且再次打开 `package.json`,可以看到很多配置也有了变化:
```json
"scripts": {
"start": "node scripts/start.js",
"build": "node scripts/build.js",
"test": "node scripts/test.js --env=jsdom"
}
```
- 简介
- 第一章 React入门
- 1.1 创建一个React项目
- 1.2 组件
- 1.3 JSX
- 1.4 eject
- 1.5 渲染
- 第二章 React组件
- 2.1 组件定义
- 2.2 数据处理
- 2.2.1 props
- 2.2.2 state
- 2.3 生命周期
- 2.3.1 装载过程
- 2.3.2 更新过程
- 2.3.3 卸载过程
- 2.4 事件处理
- 2.5 条件渲染
- 2.6 列表渲染
- 第三章 React高级
- 3.1 静态类型检查
- 3.1.1 flow
- 3.1.2 typescript
- 3.2 React Developer Tools
- 第四章 Redux状态管理
- 4.1 安装与配置
- 4.2 一个简单的计数器开始
- 4.3 Store
- 4.3.1 获取state
- 4.3.2 subscribe
- 4.4 Action
- 4.4.1 Action Creators
- 4.5 Reducer
- 4.5.1 Reducer 的拆分
- 4.6 与其他状态管理工具的对比
- 第五章 React-Router路由
- 参考资料