npm全局安装包需要root权限问题

npm包安装问题

之前在家基本都是用Surface Pro 4所以基本也就没有安装Nodejs。今天晚上正好有点时间,就把老的Thinkpad T400拿出来,写点东西总结东东吧,要不一直不总结,埋头处理工作,感觉一直没有进步。

感觉还有好多东西没有写,SSH Local/Remote Proxykubernetes环境搭建(not hard way)gitlab及runner在k8s里面搭建MyBatis学习,这些东西下周的时间全要写下来吧,要不全都要忘记了。

npm在天朝第一步应该是用cnpm吧,这一点我还是蛮喜欢alibaba的,在国内搞了一些方便开发者的镜像。

1
$ npm install -g cnpm --registry=https://registry.npm.taobao.org

这里-g就全局安装需要root权限,所以需要改下npm包管理的配置。

  1. 创建包安装目录
1
mkdir ~/.npm-packages
  1. 配置npm,将全局安装的包安装到上一步创建的目录
1
echo "prefix=${HOME}/.npm-packages" >> ~/.npmrc
  1. 配置环境PATH去正确目录查找npm包和man文件。将下面内容加入到~/.bashrc~/.zshrc
1
2
3
4
5
NPM_PACKAGES="${HOME}/.npm-packages"
PATH="$NPM_PACKAGES/bin:$PATH"

unset MANPATH
export MANPATH="$NPM_PACKAGES/share/man:$(manpath)"
  1. 更新环境
1
source ~/.zshrc

这个时候再去全局安装npm包的话,就不需要root权限,直接将包安装到~/.npm-packages目录下面了。

参考文章

Install npm packages globally without sudo on macOS and Linux

Resolving EACCES permissions errors when installing packages globally