ubuntu16.04下配置node.js和npm,以及npm的权限处理

npm在ubuntu下需要root权限一直是一件很让人苦恼的事情,为了合理安全的使用npm,需要在安装好npm之后,对其进行一些必要的处理

此处安装的是8.x的node版本,最新安装方式以node官网为准

想在windows或者MacOS下配置的同学请移步这里


依次执行这两条命令,安装好node.js,同时会一并安装好npm

1
2
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt-get install -y nodejs

通过以下两条命令可以查看已经安装好的node以及npm的版本号

1
2
node -v
npm -v

若无异常,现在的版本会分别显示

1
2
v8.4.0
5.3.0

现在开始处理npm的权限问题,最新方式以npm官网为准

1.执行此命令,创建一个隐藏目录用于全局安装:

1
mkdir ~/.npm-global

2.执行此命令,配置npm使用这个新目录:

1
npm config set prefix '~/.npm-global'

3.执行此命令,打开“~/.profile”文件:

1
gedit ~/.profile

在“~/.profile”文件底部添加这一行代码,并且保存文件:

1
export PATH=~/.npm-global/bin:$PATH

4.执行此命令,更新系统变量:

1
source ~/.profile

5.执行此命令,查看默认目录是否修改成功

1
npm config get prefix

6.不使用sudo,全局安装一个包进行测试,若不报错,则npm权限问题完美解决

1
npm install -g express

注: 官网上共有三种解决方法,一是将npm默认路径目录的拥有者由root用户改为当前用户,二是自己新建一个当前用户下的目录,将npm的默认目录改为此目录,三是使用Homebrew包管理器来解决问题,由于ubuntu16.04下npm的默认路径是在/usr下而不是在/usr/local下,所以方法一可能会造成设置错误,而方法三仅适用于macOS系统,本文只给出了方法二的解决方式,若有兴趣的小伙伴可以去npm官网查看方法一的处理方式。

好饿,想吃两个小饼饼(# ̄y▽ ̄)╭
0%