I was trying to test the performance of my React app(created with create-react-app) with react CDN script and i did 'npm run eject' to add webpack externals dependencies react and react-dom.
I did that with ease in webpack config and <script>
in index.html
...
externals: {
react: 'React',
'react-dom':'ReactDOM'
},
...
Now I want to revert it back to previous state
I am using git and i did this experiment in a seperate branch.
I ran git checkout master
and npm start
The result was annoying
> myapp@0.18.1 start /home/code/serverSync/myapp/ui
> react-scripts start
sh: 1: react-scripts: not found
npm ERR! Linux 4.15.0-23-generic
npm ERR! argv "/usr/bin/node" "/usr/bin/npm" "start"
npm ERR! node v8.10.0
npm ERR! npm v3.5.2
npm ERR! file sh
npm ERR! code ELIFECYCLE
npm ERR! errno ENOENT
npm ERR! syscall spawn
npm ERR! myapp@0.18.1 start: `react-scripts start`
npm ERR! spawn ENOENT
npm ERR!
npm ERR! Failed at the myapp@0.18.1 start script 'react-scripts start'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the myapp package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR! react-scripts start
npm ERR! You can get information on how to open an issue for this project with:
npm ERR! npm bugs myapp
npm ERR! Or if that isn't available, you can get their info via:
npm ERR! npm owner ls myapp
npm ERR! There is likely additional logging output above.
npm ERR! Please include the following file with any support request:
npm ERR! /home/code/serverSync/myapp/ui/npm-debug.log
how can i revert back to master branch ?
You can undo the "eject" operation of a Create React App app by adding the react-scripts package back. Command yarn or npm based on Your favorite Package manager
What you did:
$ yarn run eject/ npm run eject
? Are you sure you want to eject? This action is permanent. (Yes/No)Yes
Now Solution for it is to:-
$ rm -r scripts/ //Remove Your scripts folder
$ rm -r config/ //Remove Your config folder
$ rm -r node_modules// //Remove Your node_modules folder
And Add react-scripts package back using
$ yarn add react-scripts / npm install react-scripts
And inside the package.json file you'll need to change the "scripts" to their former state:
"scripts": {
+ "start": "react-scripts start",
+ "build": "react-scripts build",
+ "test": "react-scripts test --env=jsdom",
+ "eject": "react-scripts eject"
- "start": "node scripts/start.js",
- "build": "node scripts/build.js",
- "test": "node scripts/test.js --env=jsdom"
}
Now install all dependency using:-
$ yarn install / npm install
And You are good to go
$ yarn start / npm start
You made it.....
If you're in now master
branch (Which configuration is same as before npm run eject
), then try following.
- Delete
node_module
npm install
npm start
After trying Ashok answer I tried with the answer of @Ritwick Dey also.
npm delete node_modules
npm install
After that I just replaced this code from the top of packaje.json file
"scripts": {
"start": "react-native start",
"android": "react-native run-android",
"ios": "react-native run-ios",
"web": "expo start --web"
},
With this code in packaje.json
"main": "node_modules/expo/AppEntry.js",
"scripts": {
"start": "expo start",
"android": "expo start --android",
"ios": "expo start --ios",
"web": "expo start --web",
"eject": "expo eject"
},
Then
npm start
worked and the QR code is now being showed