实习也有将近两个月了,期间遇到很多大大小小的问题,周末这几天总结了一下,有些太久了有点想不起来了啊啊啊,以后我要每周五晚上总结一次!!!
1.安装包依赖的node版本和服务器部署的node版本不一致导致Jenkins打包失败
在此之前,我没有好好了解过和版本号相关的知识,为解决这个问题特地去查了一些资料,最后得出报错的原因就是eslint-define-config 前不久版本更新了到了1.24.1,依赖的node版本>=18.0.0,而我们服务器的node版本是16.18.0, 然后我又去看了package.json文件,发现eslint-define-config版本号前面有“ ^ ”。
先说一下一个版本号的结构:(特殊符号)主版本号.次版本号.补丁版本号
主版本号: 当API发生改变,并与之前的版本不兼容的时候
次版本号: 当增加了功能,但是向后兼容的时候
补丁版本号: 当做了向后兼容的缺陷修复的时候
特殊符号有 “ ^ ”,“ ~ ”,“ * ”,下面说一下它们分别代表什么意思
^ 会匹配最新的大版本依赖包,比如 ^2.2.3 会匹配所有 2.x.x 的包,包括 2.3.0,但是不包括 3.0.0
~ 会匹配最近的小版本依赖包,比如 ~1.2.3 会匹配所有 1.2.x 版本,但是不包括 1.3.0
* 会安装最新版本的依赖包,比如 *1.2.3 会匹配 x.x.x,
在和同事商量之后我把eslint-define-config 前面的“ ^ ” 去掉 重新提交代码打包,问题解决啦
2.安装不同node版本并按需求切换node到指定版本
之前我本地node版本一直是18.16.1,在发生上次事件之后leader要求我降node版本到16.18.0,于是我就去查了一下怎么降node版本。
首先需要安装 nvm ,nvm是node版本管理工具,可以简单操作node版本安装、切换、浏览等功能
下载地址nvm.uihtm.com/
配置淘宝镜像 安装后打开nvm文件夹下的settings.txt文件,在最后添加以下代码
node_mirror: https://npm.taobao.org/mirrors/node/
npm_mirror: https://npm.taobao.org/mirrors/npm/
打开终端执行 nvm命令 如果出现下面则说明安装成功
下面是一些常用的nvm命令
nvm install 16 #安装需要的node版本
nvm use 16.17.0 #使用该版本号的node
nvm list #查看当前安装的所有node版本
nvm ls #查看当前安装的所有node版本
nvm list available #显示所有可下载的版本
nvm alias [16] [16.17.0] #给不同的版本号添加别名
nvm unalias [16] #删除已定义的别名
nvm alias default [16.17.0] #设置默认版本