Centos7 使用nvm配置 多Node.js环境

背景

  • 新项目 使用Node.js-v16.17.1
  • 旧项目 使用Node.js- v14.18.0 【且依赖于node-saas模块,根据 node-sass 的官方文档,目前最新版本的 node-sass(即 v5.0.0)支持的 Node.js 版本范围是 Node.js 10.x、Node.js 12.x、Node.js 14.x。并没有明确支持 Node.js 16.x 版本】
  • Centos7.9

nvm(Node Version Manager)管理工具

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 版本,提高开发效率。

在 Centos7 上安装 nvm 和 Node.js

  • 安装必要的依赖项:
[root@localhost ~]#yum install -y curl git
  • 下载并安装 nvm:

官网仓库地址: 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,则说明 nvm 已经正确安装。

[root@localhost ~]# command -v nvm
nvm
  • 验证nvm版本
[root@localhost ~]# nvm -v
0.39.3
  • 在线查看Nodejs所有版本
[root@localhost ~]# nvm list-remote
  • 安装所需的 Node.js版本
[root@localhost ~]# nvm install 16.17.1
[root@localhost ~]# nvm install v14.18.0
  • 查看安装的 Node.js版本
[root@localhost ~]# nvm ls
    v14.18.0
    v16.17.1
  • 切换到指定Node.js版本上
[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

拓展(1): 安装yarn 包管理工具

yarn 介绍:

Yarn 是一个快速、可靠、安全的 JavaScript 包管理器,由 Facebook、Google、Exponent 和 Tilde 公司共同开发。它可以替代 npm,用于管理 JavaScript 包的依赖关系、版本号和安装。与 npm 相比,Yarn 具有以下优点:

  • 快速:Yarn 使用并行下载,可以显著提高安装包的速度。
  • 可靠:Yarn 使用一个锁文件(yarn.lock)来确保在不同的环境中安装相同的依赖项。这可以避免意外升级或降级依赖项,从而保证项目的稳定性。
  • 安全:Yarn 使用 SHA-1 哈希值来验证每个依赖项的完整性,以确保安装的包没有被篡改。
  • 支持离线模式:Yarn 可以缓存所有的包和依赖项,从而可以在没有网络连接的情况下安装依赖项。
  • 易于使用:Yarn 具有与 npm 类似的命令行界面,易于学习和使用。

总之,Yarn 是一个强大的 JavaScript 包管理器,可以帮助开发人员更快、更可靠、更安全地管理 JavaScript 包的依赖关系和版本号。

  • 先使用nvm切换到指定的nodejs 版本上
[root@localhost ~]# nvm use v14.18.0
Now using node v14.18.0 (npm v6.14.15)

  • 设置淘宝npm加速
   [root@localhost ~]# npm config set registry https://registry.npm.taobao.org

   #通过这个命令进行测试
    [root@localhost ~]# npm config get registry
    https://registry.npm.taobao.org/
  • 安装yarn并设置加速
[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==

拓展(2): jenkins 使用nvm 工具打包前端代码

上面介绍过我们需要使用多个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
                        }
                    }
                }
      }
  }

效果:
Centos7 使用nvm配置 多Node.js环境

文章来源:https://www.cnaaa.net,转载请注明出处:https://www.cnaaa.net/archives/8158

(0)
杰斯的头像杰斯
上一篇 2023年5月9日 下午5:01
下一篇 2023年5月11日 下午4:43

相关推荐

  • Linux下安装配置maven仓库

    1、安装wget命令 如果需要通过使用wget命令,直接通过网络下载maven安装包时,需要在linux系统中安装wget命令。 2、下载maven安装包 在/usr/local/下创建一个maven文件: mkdir /usr/local/maven 切换到安装目录,即新建的文件中: 下载安装: 3、解压缩maven 4、配置maven环境变量 添加环境变…

    2022年6月20日
    1.1K00
  • rsync+sersync实现实时监控备份同步

    rsync+sersync简介 sersync是基于inotify开发的,类似于inotify-tools的工具。所以同样内核需先支持inotify,才能搭建。 sersync可以记录下被监听目录中发生变化的(包括增加、删除、修改)具体某一个文件或者某一个目录的名字,然后使用rsync同步的时候,只同步发生变化的文件或者目录。 搭建环境:2台Linux(ce…

    2023年3月29日
    50300
  • Linux实验案例:构建Samba文件共享服务器

    根据公司的信息化建设要求,公司需要在局域网内部搭建一台文件服务器,便于对数据的集中管理和备份。考虑服务器的运行效率及稳定性、安全性问题,选择在CentOS系统中构建Samba服务器以提供文件资源共享服务。 需求描述 1.在/var/share/目录中建立三个子目录public、training、devel,用途如下。 public目录用于存放公共数据,如公司…

    2024年6月24日
    32100
  • 手把手教你戴尔DELL 服务器 R410 带外管理iDRAC6 升级固件版本

    升级完R410的BIOS之后,第二个需求是更新远程管理的iDRAC版本。iDRAC需要服务器安装了远程管理卡才可以使用,然而一般现在网上买到的二手R410都是非常旧的iDRAC版本。(简单判断方法:管理页面是浅蓝色配色白底背景的是旧版本,新版本为深色背景) 和更新BIOS的问题相似,网上极少有关于服务器iDRAC更新的资料。且官方的文档说明也不全。经查阅整理…

    2024年1月22日
    59500
  • CentOS7系统下扩容根目录

    利用单一磁盘的剩余空间 在同一块磁盘下,有剩余空间未分配,将该空间合并到根目录中 本文以/dev/sda为例 查看磁盘分区情况 lsblk或者fdisk -l /dev/sda 可以看到 sda 总容量为30G,而 sda1和 sda2 加起来总共使用了10G,因此我们可以将剩余的容量添加到目录中 对剩余空间进行分区格式化操作 fdisk /dev/sda …

    2022年6月9日
    1.1K00

在线咨询: QQ交谈

邮件:712342017@qq.com

工作时间:周一至周五,8:30-17:30,节假日休息

关注微信