nvm 介绍
nvm是一个用于管理多个 Node.js 版本的工具。它可以让你在同一台机器上安装和切换不同版本的 Node.js,而不会相互干扰。使用 nvm,你可以轻松地安装、切换和删除 Node.js 版本。你可以在同一台机器上同时安装多个版本的 Node.js,并且可以在项目中使用不同的 Node.js 版本,以确保项目的兼容性和稳定性。例如,你可以在一台机器上同时安装 Node.js 10.x、Node.js 12.x 和 Node.js 14.x 版本。然后,你可以使用 nvm 命令来切换到不同的版本,以便在不同的项目中使用不同的 Node.js 版本。
总之,nvm 是一个非常方便的工具,可以帮助你管理 Node.js 版本,提高开发效率。
[root@localhost ~]#yum install -y curl git
官网仓库地址: https://github.com/nvm-sh/nvm.git
[root@localhost ~]# wget https://github.com/nvm-sh/nvm/archive/refs/tags/v0.39.3.tar.gz
[root@localhost ~]# tar -xf nvm-0.39.3.tar
[root@localhost ~]# mv nvm-0.39.3 /root/.nvm
root@localhost ~]# echo ". ~/.nvm/nvm.sh" >> /etc/profile
root@localhost ~]# source /etc/profile
如果输出了 nvm,则说明 nvm 已经正确安装。
[root@localhost ~]# command -v nvm
nvm
[root@localhost ~]# nvm -v
0.39.3
[root@localhost ~]# nvm list-remote
[root@localhost ~]# nvm install 16.17.1
[root@localhost ~]# nvm install v14.18.0
[root@localhost ~]# nvm ls
v14.18.0
v16.17.1
[root@localhost ~]# nvm use v14.18.0
Now using node v14.18.0 (npm v6.14.15)
[root@localhost ~]# node -v
v14.18.0
[root@localhost ~]# npm -v
6.14.15
[root@localhost ~]# nvm use v16.17.1
Now using node v16.17.1 (npm v8.15.0)
[root@localhost ~]# node -v
v16.17.1
[root@localhost ~]# npm -v
8.15.0
yarn 介绍:
Yarn 是一个快速、可靠、安全的 JavaScript 包管理器,由 Facebook、Google、Exponent 和 Tilde 公司共同开发。它可以替代 npm,用于管理 JavaScript 包的依赖关系、版本号和安装。与 npm 相比,Yarn 具有以下优点:
总之,Yarn 是一个强大的 JavaScript 包管理器,可以帮助开发人员更快、更可靠、更安全地管理 JavaScript 包的依赖关系和版本号。
[root@localhost ~]# nvm use v14.18.0
Now using node v14.18.0 (npm v6.14.15)
[root@localhost ~]# npm config set registry https://registry.npm.taobao.org
#通过这个命令进行测试
[root@localhost ~]# npm config get registry
https://registry.npm.taobao.org/
[root@jenkins-new ~]# npm install -g yarn
#全局修改
[root@jenkins-new ~]# yarn config set registry https://registry.npm.taobao.org/
#过这个命令进行测试
[root@jenkins-new ~]# yarn -v
1.22.15
==需要注意的是,每一个nodejs 版本 再安装yarn 的时候,都需要重复上面的操作,先切换到指定nodejs,再安装yarn==
上面介绍过我们需要使用多个nodejs 环境来分别打包不同的项目
jenkinsfile 入口文件: 定义nodejs 的版本
map.put('npm_version','v16.17.1')//定义nodejs打包的版本,目前仅支持v14.18.0【默认】和v16.17.1
jenkins 前端发布模板:
stage("打包编译"){
steps{
timeout(time: 5, unit: 'MINUTES') {
script {
tools.PrintMes("打包编译!nodejs版本为:${npm_version}",'green')
try {
sh '''
source /etc/profile && nvm use "${npm_version}" && yarn && yarn build:release"
'''
}catch (err) {
echo "编译失败,请检查"
exit 3
}
}
}
}
}