npm i -g 全局安装 sudo 消除

2020-07-06更新

https://docs.npmjs.com/resolving-eacces-permissions-errors-when-installing-packages-globally
NPM官方给的建议和解决办法

这份文档里提出了两个方案

以上两种方案看个人喜好吧

======= 分割线 =======

Part One

现今的前端开发中 我们经常会用到 npm
然而有些包我们必须全局安装,比如 @vue/cli create-react-app 等等

但是经常会有人遇到全局安装 权限不足的问题(permission denied)(因为大多数人的 npm 安装目录是在 /usr/local/bin 下)
虽然我们可以 是用 sudo 来解决 npm i -g的权限问题,但之后会产生一系列其他的权限问题,简直是后患无穷

所以 建议 在 终端中修改 node_modules 的权限

$ sudo chown -R $(whoami) ~/.npm
$ sudo chown -R $(whoami) $(npm config get prefix)/{lib/node_modules,bin,share}

Part Two

我们是用 @vue/cli 或者其他类似的教授教 创建项目的时候有一定概率遇到权限问题
例如

$ vue ui

Error: EACCES: permission denied, open '/Users/xxx/.vue-cli-ui/db.json'

我们依然可以使用 sudo 但是。。。之后你会哭的
为什么?
因为 使用 sudo vue ui 之后 创建项目 你会发现创建好的项目文件 全都有一个小锁的角标,你根本无权编辑!
这种时候 我们就如同 Part One 中的那样处理

$ sudo chown -R $USER:$GROUP ~/.npm

# 修改权限不足的文件夹权限
$ sudo chown -R $USER:$GROUP ~/.vue-cli-ui

Have Fun~

精彩!