Error: EACCES: permission denied when trying to install ESLint using npm
node.jsMacosNpmEslintnode.js Problem Overview
I'm trying to install ESLint with npm by going:
npm install -g eslint
However I get the following error:
Deans-Air:~ deangibson$ npm install -g eslint
npm ERR! tar.unpack untar error /Users/deangibson/.npm/eslint/2.4.0/package.tgz
npm ERR! Darwin 15.3.0
npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "install" "-g" "eslint"
npm ERR! node v4.2.3
npm ERR! npm v2.14.7
npm ERR! path /usr/local/lib/node_modules/eslint
npm ERR! code EACCES
npm ERR! errno -13
npm ERR! syscall mkdir
npm ERR! Error: EACCES: permission denied, mkdir '/usr/local/lib/node_modules/eslint'
npm ERR! at Error (native)
npm ERR! { [Error: EACCES: permission denied, mkdir '/usr/local/lib/node_modules/eslint']
npm ERR! errno: -13,
npm ERR! code: 'EACCES',
npm ERR! syscall: 'mkdir',
npm ERR! path: '/usr/local/lib/node_modules/eslint',
npm ERR! fstream_type: 'Directory',
npm ERR! fstream_path: '/usr/local/lib/node_modules/eslint',
npm ERR! fstream_class: 'DirWriter',
npm ERR! fstream_stack:
npm ERR! [ '/usr/local/lib/node_modules/npm/node_modules/fstream/lib/dir-writer.js:35:25',
npm ERR! '/usr/local/lib/node_modules/npm/node_modules/mkdirp/index.js:47:53',
npm ERR! 'FSReqWrap.oncomplete (fs.js:82:15)' ] }
npm ERR!
npm ERR! Please try running this command again as root/Administrator.
npm ERR! Please include the following file with any support request:
npm ERR! /Users/deangibson/npm-debug.log
And to be honest I get this every single time I try and install something with npm. Sometimes using 'sudo' works, sometimes it doesn't... How can I fix this once and for all?
node.js Solutions
Solution 1 - node.js
Use --unsafe-perm=true
and --allow-root
flags with npm
install like below:-
sudo npm install -g eslint --unsafe-perm=true --allow-root
it worked like charm for me.
Solution 2 - node.js
This problem is well documented in the [npm docs: Fixing npm permissions][1].
You have 2 solutions available:
Option 1: Change npm's default directory to a hidden directory in your home folder
mkdir ~/.npm-global
npm config set prefix '~/.npm-global'
export PATH=~/.npm-global/bin:$PATH
source ~/.profile
Option 2: Use a package manager that takes care of this for you
brew install node
[1]: https://docs.npmjs.com/getting-started/fixing-npm-permissions "Fixing npm permissions"
Solution 3 - node.js
Running the following command solved the issue for me while installing my packages.json :
sudo npm install --unsafe-perm=true --allow-root
To install only the package which caused the issue:
sudo npm install -g --unsafe-perm=true --allow-root eslint
Solution 4 - node.js
sudo npm install -g --unsafe-perm=true eslint
is sufficient.
Solution 5 - node.js
Use sudo before tns and it is work for me
Example:
sudo tns create Tekmo --template tns-template-hello-world
if I have used sudo then not found error like to create postinstall.js > Error: EACCES: permission denied
Solution 6 - node.js
you can login as root using sudo su
. First run the command sudo su
on your terminal, then give your login password. Finally execute your expected command npm install -g eslint
. It works for me.
Solution 7 - node.js
For MAC user provide the access permission to project directory folder
- Right click on project directory folder
- Select get info
- Provide the access permission - Apply to inclosed items
Solution 8 - node.js
Just had the same error while running
npm install -g @ionic/cli native-run cordova-res
To fix, run the following
sudo apt update
sudo apt upgrade -y
I had read the already present solutions but thought there was something else, UNSAFE isn't a safe keyword, lol. While running the command with the --unsafe-perm=true, I noticed it downloading what seemed to be update binaries. So, I updated and tried again.