如何正确配置Node.js和npm

在安装和配置Hexo的时候经常会遇到EACCES报错。这篇文章通过安装nvm来解决这个报错的问题。

避免 npm install -g 报错

相信大家在一开始使用npm的时候都会遇到一个问题。在需要-g (global全局安装)命令的时候,总是会遇到如下的报错信息:

1
$ Error: EACCES: permission denied

求助了一下前端的同学这个是因为npm安装的时候没有root的权限导致的。当然获取root权限我们可以有很多办法来让他成功运行(sudo,修改权限),但是因为有些包我们不能确定他完全没有恶意代码在里面,直接给予root权限也是不安全的。

npm的官方网站对EACESS的问题解决方案也是推荐使用nvm来管理,但是教程给的信息又非常简短,中间还有很多坑。下面来指导大家如何安装nvm并避免EACESS报错产生。同时nvm作为一个包管理程序可以帮助前端工程师们更加便捷的使用不同的node环境来调试程序。

准备步骤

在安装nvm的之前分两种情况:

  1. 已经通过brew,二进制文件,或者安装包安装了了Node.js环境的同学,请继续往下看这里
  2. 电脑没有安装Node环境,那太棒了,直接跳到这里就可以。

电脑已经存在Node环境

如果电脑中已经存在了通过安装包来安装Node环境的情况下,最好先整体删除现有的node环境以免之后nvm安装后也没有效果。
Mac的用户先找到如下三个文件夹:

1
2
3
/usr/local/include/node
/usr/local/lib/node_modules
/usr/local/bin/node

在依次删除这几个文件夹

1
2
3
$ sudo rm -R /usr/local/include/node
$ sudo rm -R /usr/local/lib/node_modules
$ sudo rm -R /usr/local/bin/node

删除命令运行完毕之后可以用node -v 命令来确定node是否正确删除。报错的话就说明node环境已经从电脑中删除了。

1
2
$ node -v
$ # -bash: node: command not found

如果没有删除成功,其他的删除方式可以参考这里

下载安装nvm

首先我们打开terminal输入下面两条任意一条指令:

1
2
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.2/install.sh | bash 
#curl请求方式
1
2
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.2/install.sh | bash
#wget请求方式

这一步结束之后就可以验证是否安装成功了。输入下面的命令检测:

1
2
$ command -v nvm
nvm #如果输出nvm说明安装成功

如果上面成功输出nvm说明已经安装成功。
报错的话请参考官方指南

通过nvm安装node环境

安装好nvm之后就可以安装node环境了,这里如果对环境没有特殊要求的话还是推荐安装官方的LTS版本,因为这个版本相对稳定,安装最新的版本可能会导致有些第三方的库支持不足。个人在安装Hexo的一些plugin的时候就会报错就是因为这个nodejs版本原因。

通过下面的命令可以安装想要的node版本:

1
2
3
4
$ nvm ls-remote #列出所有node版本
$ nvm install XX.XX.XX #安装特定的版本
$ nvm install --lts #根据官方文档可以安装 Node.js LTS 版本
$ nvm install node #安装最新的node版本

到这里应该就可以正确使用npm install -g来安装第三方库了。这里可能还有别的坑,大家可以一起交流:

You forgot to set the qrcode for Alipay. Please set it in _config.yml.
You forgot to set the qrcode for Wechat. Please set it in _config.yml.
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×