MAC使用npm全局安装出现的权限问题
前几天清了一下电脑缓存和垃圾文件之类的,一不小心把node环境搞崩了
之前是用homebrew安装nvm,管理node版本,还是比较方便的,但是查看nvm管理的文件目录,感觉非常糟心,对于强迫症来说实在是难以忍受。
干脆就直接nvm相关的所有内容全部清掉,现有的node环境也各种清理,包括npm,npx和之前安装的各种全局工具,都清了一干二净
重新从node官网下载了最新的node版本直接安装,看着那干净的目录环境,简直舒心多了
但是遇到了一个新问题,就是npm默认下载目录是在 /usr/local/lib/node_modules
,使用npm下载全局模块时,没有写入权限,会遇到报错: Missing write access to /usr/local/lib/node_modules
解决方式其实也简单,就是在下载命令前加上 sudo
即可
但是毕竟不是太方便,需要每次下载都使用 sudo
还可以给 /usr/local/lib
修改写入权限,但是这个文件夹内不止有npm一家在用,直接修改权限又怕将来重新填坑
干脆一不做二不休,将npm下载的全局模块路径改到直接具有权限的路径
此处借助了mac系统对于 .
开头的文件夹会自动隐藏的特点,在 ~
目录下创建 .npm-global
文件夹
在终端中使用 npm config set prefix '~/.npm-global'
修改npm的下载路径
然后使用命令打开编辑.bash_profile
文件:open -e .bash_profile
在文件内增加命令:export PATH=~/.npm-global/bin:$PATH
保存文件,关闭 .bash_profile
在终端中使用 source .bash_profile
刷新配置
整个过程就完成了,可以下载个全局模块进行测试了