'Ubuntu create-react-app fails with permission denied
I'm getting a weird error:
Unhandled rejection Error: EACCES: permission denied, mkdir '/home/ubuntu/.npm/_cacache/index-v5/14/36'atus
I just install npm (6.4.1) and node (11.2.0) on an AWS instance without problems. I installed create-react-app globally. The error says This is an error with npm itself.
I'm kind of at a loss. I created the directory /home/ubuntu/.npm/_cacache/index-v5/14 and it still wouldn't succeed. I obviously own and have write permissions in /home/ubuntu.
It looks like it succeeds with sudo. why ?
Edit: ubuntu:ubuntu owns the current and parent directory (I'm in /home/ubuntu/workspace)
Solution 1:[1]
TL;TR
Run:
sudo chown -R $USER:$USER '/home/REPLACE_WITH_YOUR_USERNAME/.npm/'
On Linux OS NPM
and NodeJS
are installed globally with sudo
and the owner of that files is the root and usually a user can only read/execute that packages. When NPM
is stalled a ~/.npm/ folder is created by the root. By running create-react-app
you are executing the command as user and create-react-app
is trying to modify something in the ~/.npm/ directory which is owned by the root and not to current user. You need to change the owner of that directory to you, so you can modify it without sudo
privileges.
Often similar thing happens when you install NPM
package with sudo
e.g. sudo npm install <package> --save
. Again the newly installed package in owned by the root and for example when you try to update/modufy/delete your project without sudo
infrnt of NPM
you will have similar permission error. In these cases navigate to your project directory and change its owner by running:
sudo chown -R $USER:$USER .
Solution 2:[2]
This problem on a Mac
Working from Reactjs's Getting Started documentation.
The Environment
- OSX Mojave
10.14.3
- NodeJS
v10.15.0
The Error
- Command
npx create-react-app my-app
- Output
Unhandled rejection Error: EACCES: permission denied, mkdir '/Users/caseywise/.npm/_cacache/index-v5/ae/73'instal
The Fix
recursively change
owner
:group
on caseywise's NPM preferences directory
sudo chown -R caseywise:staff '/Users/caseywise/.npm/'
Solution 3:[3]
New way of installation will resolve the issue.
According to the latest react documentation follow below steps to create react app
npx create-react-app my-app
cd my-app
npm start
Note(from ReactJS Team): If you've previously installed create-react-app globally via npm install -g create-react-app, we recommend you uninstall the package using npm uninstall -g create-react-app to ensure that npx always uses the latest version.
Refer official documentation: https://facebook.github.io/create-react-app/docs/getting-started
Solution 4:[4]
Check the owner of the file with ls -l /problem/dir/
. The owner is probably set to root
, instead of myUserName
(i.e. TWoody
).
You will want to ch
ange own
er of the .npm/
globally first with chown
:
sudo chown -R $USER: ~/.npm/
.
And if this issue has crept into other /build/
directories after running npm run build
, you can go to those directories and run the same command:
sudo chown -R $USER: ./problem/dir/
Note that the chown
command is using the -R
flag to change the user ID and/or group ID for the hierarchies rooted in the files instead of just the files themselves. Also note that the argument $USER:
is taking your user name (i.e. myUserName
, TWoody
) and replacing the "group" ID (the second argument of null) of root
.
Solution 5:[5]
Remove or rename /home/ubuntu/.npm/_cacache/
Solution 6:[6]
I have same error on Mac catalina 10.15
You must use sudo, because root is the owner of npm folder, user try to modify some file under npm folder, must run as root by sudo.
The fix is:
sudo dojo create app --name hello-world
Solution 7:[7]
sudo chown -R your_user ~/your_projects_directory
Solution 8:[8]
I was also facing create-react-app: Permission denied issue with ubuntu 18.04 .I have resolved this issue.
Please execute few commands.
Completely uninstall nodejs, npm
sudo apt-get remove nodejs sudo apt-get remove npm
Check for any .npm or .node folder and delete those.
which nodejs which node
Install Node.js
sudo apt update sudo apt install nodejs
The nodejs package contains the nodejs binary as well as npm, so you don’t need to install npm separately.
Check nodejs and npm version.
nodejs --version #v12.22.6 npm --version #6.14.15
Create react-app.
npm init npx create-react-app "your-app-name"
Solution 9:[9]
Use this command :
sudo chown -R 1000:1000 "/home/user/.npm"
Solution 10:[10]
In my case, with Windows WSL 2, switching to 'node' user using 'su node' fixed this 'sh: 1: create-react-app: Permission denied' issue. The error was coming when the command 'npx create-react-app test-app' was being executed via 'root'.
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow