undo 'npm run eject' in react

匿名 (未验证) 提交于 2019-12-03 01:33:01

问题:

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 ?

回答1:

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


回答2:

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.....



标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!