错误信息
Error: EACCES: permission denied, mkdir 'xxxxx'
解决问题
从错误信息中我们可以看出, 在创建目录的时候需要管理员权限导致安装失败,解决思路就是将全局的安装路径放到用户的home下面
获取当前配置信息
$ npm config get prefix
$ /usr/local/lib/nodejs/node-v18.12.0-linux-x64
# 因为我是手动安装的,所以路径会有一些不同
在当前用户下新建一个文件夹,用来全局安装
$ mkdir ~/.npm_global
设置npm的全局prefix
$ npm config set prefix '~/.npm_global'
# 设置之后检查是否设置成功
$ npm config get prefix
$ /usr/tester/.npm_global
添加环境变量
linux 添加环境变量的方法有很多,比如修改
.bash_profile或者修改.bashrc, 在这里我选择了.bashrc文件。
选择自己熟悉的编辑器打开.bashrc文件, 我使用vim编辑器
$ vim ~/bashrc
跳转到文件结尾,在最后一行添加如下语句
export PATH=~/.npm_global/bin:$PATH
export NODE_PATH=~/npm_global/lib/node/modules
NODE_PATH该环境变量能够确保我们程序中可以从新的位置导入全局包
重新载入.bashrc文件, 让新加入的环境变量立即生效
$ source ~/.bashrc
重新安装npm
使用命令npm list -g --depth 0 查看当前已经安装全局模块
此时应该显示empty,因为我们没有安装任何module。
在新的路径重新安装 npm
$ npm install npm@latest -g
安装结束,查看npm版本信息是否正确
到此,问题解决。