背景
采纳二进包体式格局装置nodejs须要root权限,由于 nodejs 的默许装置途径是 /usr/local/bin/node, /usr/local目次的所有者是root。因而我们在以全局装置和当地装置npm包的时刻,须要在普通用户和超等用户往返切换。
碰到以下题目,就要斟酌修复npm权限了:
(1)Error:EACCES: permission denied
(2)用sudo装置的包,提醒没有实行权限
为避免用普通用户装置npm包时报错,平常我们不发起运用 sudo, 也就是无论是全局装置照样当地装置体式格局,都不须要加 sudo, 如许就不会发生权限杂沓的题目了。
解决方案
- 将 /usr/local 目次的所有者变动为当前用户
sudo chown -R $(whoami) /usr/local
注:可以用ls -all /usr/local 检察所有者是不是已变动 - 修正目次所有者
sudo chown -R $(whoami) your-project-path - 修复 npm 或 yarn 的缓存目次的权限题目
sudo chown -R $(whoami) $(npm get cache)
sudo chown -R $(whoami) $(yarn cache dir)