4

I wanted to create a new react app using the create-react-app script. I still had a global version installed which is not supported anymore so I uninstalled the global version and tried creating a new one like this:

npx create-react-app myapp

I then got an error of no template used and that I probably use an older version of create-react-app. I read online and this DID work:

npx --ignore-existing create-react-app myapp

I read that it means I still got an older version even though I did uninstall the global version. So how do I remover any other older version of create-react-app?

CodeMonkey
  • 11,196
  • 30
  • 112
  • 203
  • Which version of `create-react-app` you have? – Abdelrhman Arnos Apr 22 '20 at 11:33
  • @AbdelrhmanArnos When checking with npx it tells 3.1.1, but when checking with npm it tells 6.13.4 – CodeMonkey Apr 22 '20 at 11:40
  • Let me explain something, `npx` using to execute the packages directly in one command instead of installing the `create-react-app` using `npm` then creating your application. – Abdelrhman Arnos Apr 22 '20 at 11:47
  • @AbdelrhmanArnos OK. So why does creating the app only works when adding --ignore-existing to the command? It means I don't have the correct version – CodeMonkey Apr 22 '20 at 12:05
  • Because `npx` Ignores existing binaries in $PATH, or in the local project. This forces `npx` to do a temporary install and use the latest version. – Abdelrhman Arnos Apr 22 '20 at 18:31
  • @AbdelrhmanArnos The question is how do I remove the old version if uninstalling the global version isn't enough – CodeMonkey Apr 23 '20 at 13:29
  • Uninstall the `create-react-app` globally using `npm uninstall -g create-react-app` then check if is it removed successfully from your machine using `which create-react-app` if still exist delete it manually `rm -rf /usr/local/bin/create-react-app` and finally you able to use last version with `npx create-react-app myapp`. – Abdelrhman Arnos Apr 24 '20 at 14:27
  • I'm on Windows here – CodeMonkey Apr 26 '20 at 07:19
  • For windows: if still the `create-react-app` exist delete it manually in `C:\nodejs\node_modules\npm\bin\create-react-app`. – Abdelrhman Arnos Apr 26 '20 at 13:17

5 Answers5

7

The following steps solved the problem of removing an old version and creating a create-react-app.

1 Check version of create-react-app, using npx create-react-app -V.

2 Uninstall any global version of create-react-app, using either npm uninstall -g create-react-app or yarn global remove create-react-app.

3 View the contents of your machine _npx folder, each folder inside represents a version of node installed. Use ls -a /Users/<username>/.npm/_npx/.

4 View the version of create-react-app in a node version found in step 3 in the package.json file. Example nano /Users/<username>/.npm/_npx/c67e74de0542c87c/package.json.

5 Delete the node version folder. Example rm -rf /Users/<username>/.npm/_npx/c67e74de0542c87c. It will get recreated when you run step 6. Alternatively, you can rename the folder to be safe.

6 Create react app. npx create-react-app my-app. You should see the prompt to proceed app creation.

Apex
  • 206
  • 2
  • 5
3

The npx is a tool to execute packages and npm is a tool mainly used to install packages. That's means if you want to execute a package without installing it on your computer and then launch it you can use npx directly.

Uninstall the library globally
Use npm uninstall -g create-react-app then check if is it removed successfully from your machine using which create-react-app. If still exist delete it manually.

Linux

rm -rf /usr/local/bin/create-react-app
  • -r -- attempt to remove the file hierarchy rooted in each file argument i.e. recursively remove subdirectories and files from the specified directory.
  • -f -- attempt to remove the files without prompting for confirmation, regardless of the file’s permissions

Windows

del /f/s/q C:\nodejs\node_modules\npm\bin\create-react-app > nul
rmdir /s/q C:\nodejs\node_modules\npm\bin\create-react-app
  • /f -- forces the deletion of read-only files.
  • /q -- enables quiet mode. You are not asked if it is ok to delete files (if you don't use this, you are asked for any file in the folder).
  • /s -- runs the command on all files in any folder under the selected structure.

Finally you able to use the last version with npx create-react-app myapp.

Abdelrhman Arnos
  • 1,404
  • 3
  • 11
  • 22
1

If someone in the future finds this and the above solutions don't help, I found a fix for myself.

I tried everything including the npm uninstall -g create-react-app which seemingly did nothing.

Then I finally found this from an old installation: C:\Users\<username>\AppData\Roaming\npm\ which had 2 react related files, named along the lines of create-react-app.cmd or something similar. Delete anything related to react from that folder.

Then in the same path delete this folder:

C:\Users\<username>\AppData\Roaming\npm\node_modules\create-react-app

If you had none of the above in your roaming folder, then your issue is elsewhere. The above files must have stayed from an old npm react installation which the uninstall command doesn't delete for some reason.

This fixed all problems for me though, and I was finally able to create a functioning project with npx create-react-app.

liquardo
  • 91
  • 1
  • 10
1

All the advice tells us remove the globally installed old version of create-react-app - but apparently it was a non-global existing installation that was causing the problem for me.

I had success with

npm uninstall create-react-app

(leaving out the -g flag). I have no idea where it was, but apparently it is gone now :)

Ger
  • 889
  • 1
  • 12
  • 21
0

I was running into this on my MB Pro 2012 with Mojave (10.14.6) and tried a bunch of different things after the recommended solutions of

Please remove any global installs with one of the following commands:
- npm uninstall -g create-react-app
- yarn global remove create-react-app

I tried switching to each of my node versions using nvm one at a time and running both of these. I tried uninstalling all of the node versions I had. I ran

which create-react-app

And got nothing.

I tried to see if I could sidestep like the Original Poster, but when I ran

npx --ignore-existing create-react-app myapp

I got an error message saying that the ignore-existing option has now been disabled.

Some posts were mentioning an issue with npm's cache so I ran

nvm cache clear

But no dice. I was reading something other posts and saw some mentions of using homebrew to uninstall node, so I started going through that route:

brew doctor

Then

brew update

Then

brew upgrade

After that, I thought maybe it was installed in the system version of node and that nvm was hiding it from me. So, to get access to system node, I ran

nvm deactivate

Then I ran

which create-react-app

and I again got nothing. Finally, I tried to actually run the command using the system version of node

npx create-react-app my-app

This time, I got:

Need to install the following packages:
  create-react-app
Ok to proceed? (y) y

Creating a new React app in /Users/my_username...

It went through with the install this time. Then when I opened another terminal with nvm activated and was able to run

npx create-react-app trying-again

Finally, it worked.

TLDR;

nvm deactivate
npx create-react-app my-app
# say yes when it asks you to install
# close that terminal and open another and you should be able to use the command as normal