第二章 Nodejs多版本共存部署
1.项目背景
公司新前端项目上线,原nodejs版本为v12.18.2,不能满足新项目的上线需求,需要新部署nodes长期稳定版本v16.15.1。但由于旧项目仍然编译打包使用旧版本,因此需要两个nodejs共存使用。
2.环境准备
主机名 |
joyuai-devbuild5-225 |
IP地址 |
10.200.5.15 |
原nodejs版本 |
v12.18.2 |
新nodejs版本 |
v16.15.1 |
3.部署过程
3.1 验证旧nodejs位置
[root@joyuai-devbuild5-225 ~]# type node
node is /usr/local/node//bin/node
3.2 下载node 16安装包
#1.新建安装包存放目录并下载新nodejs安装包
[root@joyuai-devbuild5-225 ~]# mkdir -p /opt/software/ && cd /opt/software/
[root@joyuai-devbuild5-225 software]# wget https://nodejs.org/dist/v16.15.1/node-v16.15.1-linux-x64.tar.xz
#2.查看安装包
[root@joyuai-devbuild5-225 software]# ll
total 126132
-rw-r--r--. 1 root root 22041388 Jun 2 03:17 node-v16.15.1-linux-x64.tar.xz
3.3 解压node 16安装包并重命名
[root@joyuai-devbuild5-225 software]# tar xf node-v16.15.1-linux-x64.tar.xz -C /opt/
[root@joyuai-devbuild5-225 software]# cd /opt/
[root@joyuai-devbuild5-225 opt]# ll
total 4
drwxr-xr-x. 7 1001 1001 173 Jun 17 12:07 node-v16.15.1-linux-x64
[root@joyuai-devbuild5-225 opt]# mv node-v16.15.1-linux-x64 node16
3.4 修改node 16全局配置
[root@joyuai-devbuild5-225 opt]# cd node16/bin/
#1.配置node16全局变量
[root@joyuai-devbuild5-225 bin]# mv node node16
[root@joyuai-devbuild5-225 bin]# ln -s /opt/node16/bin/node16 /usr/bin/node16
#2.验证node16全局变量
[root@joyuai-devbuild5-225 bin]# ll /usr/bin/node16
lrwxrwxrwx. 1 root root 22 Jun 17 12:30 /usr/bin/node16 -> /opt/node16/bin/node16
[root@joyuai-devbuild5-225 bin]# type node16
node16 is /opt/node16/bin/node16
#3.修改npm16全局变量
[root@joyuai-devbuild5-225 bin]# mv npm npm16
[root@joyuai-devbuild5-225 bin]# vim npm16
#!/usr/bin/env node16 将node改为node16
#4.修改npx16全局变量
[root@joyuai-devbuild5-225 bin]# mv npx npx16
[root@joyuai-devbuild5-225 bin]# vim npx16
#!/usr/bin/env node16 将node改为node16
#5.修改corepack全局变量
[root@joyuai-devbuild5-225 bin]# mv corepack corepack16
[root@joyuai-devbuild5-225 bin]# vim corepack16
#!/usr/bin/env node16 将node改为node16
#6.查看总的修改
[root@joyuai-devbuild5-225 bin]# ll
total 79276
lrwxrwxrwx. 1 1001 1001 45 Jun 2 03:16 corepack16 -> ../lib/node_modules/corepack/dist/corepack.js
-rwxr-xr-x. 1 1001 1001 81175592 Jun 2 03:16 node16
lrwxrwxrwx. 1 1001 1001 38 Jun 2 03:16 npm16 -> ../lib/node_modules/npm/bin/npm-cli.js
lrwxrwxrwx. 1 1001 1001 38 Jun 2 03:16 npx16 -> ../lib/node_modules/npm/bin/npx-cli.js
3.5 安装yarn和pnpm
#1.安装yarn和pnpm
[root@joyuai-devbuild5-225 bin]# cd ..
[root@joyuai-devbuild5-225 node16]# npm16 install yarn
[root@joyuai-devbuild5-225 node16]# npm16 install pnpm
#2.配置软连接
[root@joyuai-devbuild5-225 node16]# cd bin/
[root@joyuai-devbuild5-225 bin]# ln -s ../lib/node_modules/corepack/dist/yarn.js yarn16
[root@joyuai-devbuild5-225 bin]# ln -s ../lib/node_modules/corepack/dist/pnpm.js pnpm16
[root@joyuai-devbuild5-225 bin]# ln -s ../lib/node_modules/corepack/dist/yarn.js yarnpkg16
#3.修改yarn和pnpm的node变量
[root@joyuai-devbuild5-225 bin]# vim yarn16
#!/usr/bin/env node16
[root@joyuai-devbuild5-225 bin]# vim pnpm16
#!/usr/bin/env node16
#4.总修改
[root@joyuai-devbuild5-225 bin]# ll
total 79276
lrwxrwxrwx. 1 1001 1001 45 Jun 2 03:16 corepack16 -> ../lib/node_modules/corepack/dist/corepack.js
-rwxr-xr-x. 1 1001 1001 81175592 Jun 2 03:16 node16
lrwxrwxrwx. 1 1001 1001 38 Jun 2 03:16 npm16 -> ../lib/node_modules/npm/bin/npm-cli.js
lrwxrwxrwx. 1 1001 1001 38 Jun 2 03:16 npx16 -> ../lib/node_modules/npm/bin/npx-cli.js
lrwxrwxrwx. 1 root root 41 Jun 17 12:10 pnpm16 -> ../lib/node_modules/corepack/dist/pnpm.js
lrwxrwxrwx. 1 root root 41 Jun 17 12:10 yarn16 -> ../lib/node_modules/corepack/dist/yarn.js
lrwxrwxrwx. 1 root root 41 Jun 17 12:38 yarnpkg16 -> ../lib/node_modules/corepack/dist/yarn.js
4.验证版本
[root@joyuai-devbuild5-225 ~]# node16 -v
v16.15.1
[root@joyuai-devbuild5-225 ~]# npm16 -v
8.11.0
[root@joyuai-devbuild5-225 ~]# yarn16 -v
1.22.15
[root@joyuai-devbuild5-225 ~]# pnpm16 -v
6.11.0
至此新版本node 16安装完毕