Node是一个JavaScript的运行环境,其携带的npm包管理可以方便的构建前端代码。 本文演示在centos7下安装Node.js。 官网:https://nodejs.org/zh-cn/

1. yum安装

根据想要安装的版本, 选择对应的yum源:

  • Node.js v13.x: curl --silent --location https://rpm.nodesource.com/setup_13.x | bash -

  • Node.js v11.x: curl --silent --location https://rpm.nodesource.com/setup_11.x | bash -

  • Node.js v10.x: curl --silent --location https://rpm.nodesource.com/setup_10.x | bash -

执行命令安装: yum install -y nodejs

2 手动编译安装

注意编译安装可能需要的时间比较久

2.1 下载安装包

当前最新的稳定版为14.17.4(2021-08-08): wget https://nodejs.org/dist/v14.17.4/node-v14.17.4.tar.gz

2.2 安装依赖

注意14的版本需要gcc和g++要大于8.3的版本。 yum install gcc gcc-c++ 如果需要升级版本可以通过devtoolset暂时的提升版本,重启回话后失效:

# 版本查看
gcc --version
g++ --version
# 版本升级
sudo yum install centos-release-scl
sudo yum install devtoolset-8-gcc*
scl enable devtoolset-8 bash

注意devtoolset是安装在/opt/rh,每个版本的目录下面都有个enable文件,需要切换版本选择对应版本的enable文件执行就行:

source /opt/rh/devtoolset-8/enable

2.3 解压

tar -xzvf node-v14.17.4.tar.gz

2.4 安装

cd node-v14.17.4
#配置安装路径
./configure --prefix=/usr/local/node
make && make install

2.5 配置环境变量

echo "export PATH=$PATH:/usr/local/node/bin" >> /etc/bashrc

source /etc/bashrc

3 版本查看

node -v
npm -v

4 卸载

sudo npm uninstall npm -g

yum remove nodejs npm -y

5 问题

5.1 卸载后再安装版本显示不对

有可能是环境变量没有删除干净。 编辑/etc/bashrc文件结尾,把node的变量删除。

5.2 Gitbook-cli安装报错

报错内容如下:

/usr/lib/node_modules/gitbook-cli/node_modules/npm/node_modules/graceful-fs/polyfills.js:287
      if (cb) cb.apply(this, arguments)
                 ^

TypeError: cb.apply is not a function
    at /usr/lib/node_modules/gitbook-cli/node_modules/npm/node_modules/graceful-fs/polyfills.js:287:18
    at FSReqCallback.oncomplete (fs.js:169:5)

注释 polyfills.js 中的 3 行内容(62至64行)即可:

# 路径:/usr/lib/node_modules/gitbook-cli/node_modules/npm/node_modules/graceful-fs/polyfills.js

//  fs.stat = statFix(fs.stat)
//  fs.fstat = statFix(fs.fstat)
//  fs.lstat = statFix(fs.lstat)

6 npm换源

6.1 查看当前使用的源

npm config get registry

6.2 临时修改源

不影响配置,修改XXX为下载的包就好 npm --registry https://registry.npm.taobao.org install xxx

6.3 永久修改

npm config set registry https://registry.npm.taobao.org

6.4 切换回默认

npm config set registry https://registry.npmjs.org/

7 参考文章