今天手贱运行了 yarn run eject
,试过之后后悔了,网上大多都在说「这是个不可逆的操作」,让你重建项目。但实际上,你不需要重建项目就能恢复。
Eject 做了什么
想要撤回 Eject,就要知道它做了什么?Eject 大概可以分成三个操作:
- 删除包
react-scripts
- 修改
package.json
里的scripts
// 运行前
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test --env=jsdom",
"eject": "react-scripts eject"
}
// 运行后
"scripts": {
"start": "node scripts/start.js",
"build": "node scripts/build.js",
"test": "node scripts/test.js --env=jsdom"
}
- 新增了
scripts
和config
文件夹
总的来说,Eject 其实就是把原本放在包 react-scripts
里的逻辑代码和配置都移到了项目根目录里,让我们能够自己配置。
如何撤回 Eject
其实答案已经出来了,只要和 Eject 对着干就行,具体分三步:
- 删除
scripts
、config
、node_modules
文件夹 - 运行
yarn add react-scripts
将包react-scripts
安装回来 - 将
package.json
的scripts
变成:
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test --env=jsdom",
"eject": "react-scripts eject"
}
- 运行
yarn install
安装所有依赖项
完成!