npm i -g 全局安装 sudo 消除
2020-07-06更新
https://docs.npmjs.com/resolving-eacces-permissions-errors-when-installing-packages-globally
NPM官方给的建议和解决办法
这份文档里提出了两个方案
- 使用
node版本管理工具
,比如n
或者nvm
- 人工修改
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