当前位置: 首页 > Web前端 > HTML

nvm-anode版本管理工具+打开终端自动切换node版本教程

时间:2023-03-28 18:12:05 HTML

日常前端或node后台开发中,使用的一些node依赖可能不支持当前node版本,如果要使用请看这里time看happydevelopment,只能切换node版本。不过,虽然卸载安装node的麻烦可以接受,但是如果想在其他项目中使用更高版本node的语法支持,要么必须使用webpack或者gulp构建编译工具,要么还是需要使用更高版本的节点。这时候nvm出现了。Nvm是节点版本管理器。你可以使用它来安装多个版本的node,然后你可以通过一个命令轻松切换当前使用的node版本。也就是说,不用再卸载安装了,直接用nvm安装你想用哪个版本,安装一个命令就可以切换!下面是基于mac系统来讲解一些步骤。安装nvm官方教程卸载全局安装的node包。由于使用了nvm'hosting',所以需要卸载之前安装的全局节点包,以防出现问题。npm、cnpm、yarn等一起删除,后面需要重新安装。下面的命令可以查看全局已经安装的module节点功能模块,这样删除这些全局模块后,根据不同的node版本重新全局安装npmls-g--depth=0以下是卸载步骤或者你可以使用type-anode查看路径,不同的机器和不同的安装方式,位置可能不同。删除全局的node_modules目录,里面其实只有几个文件夹,是npm和npm全局安装的,比如yarn,cnpm等sudorm-rf/usr/local/lib/node_modules删除node,其实、卸载node环境sudorm/usr/local/bin/node删除全局node模块注册的软链接。懂linux命令语法的人大概能看懂。下面这行命令是先进入系统的全局命令文件,过滤掉依赖node_modules的所有指令(其实就是步骤1中的那几条指令),然后删除cd/usr/local/bin&&ls-l|grep"../lib/node_modules/"|awk'{print$9}'|xargsrm可以在终端输入node-v。如果提示node:commandnotfound,则表示卸载完成。有多种安装nvm的方法。以下是两种方式。建议查看官网最新的安装说明(由于外网问题,很有可能会安装失败,后面还有其他安装方式):curl方式:curl-o-https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh|bashwget方法:wget-qO-https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh|bash以上两条语句都会执行nvm安装脚本。安装完成后会出现类似如下的打印:=>Profilenotfound。已尝试(在$PROFILE中定义)、~/.bashrc、~/.bash_profile、~/.zshrc和~/.profile。=>创建其中一个并再次运行此脚本=>创建它(触摸)并运行再次执行此脚本OR=>将以下行附加到您自己的正确文件中f:exportNVM_DIR="$HOME/.nvm"[-s"$NVM_DIR/nvm.sh"]&&\."$NVM_DIR/nvm.sh"#这将加载nvm=>关闭并重新打开您的终端以开始使用nvm或运行以下命令以立即使用它:exportNVM_DIR="$HOME/.nvm"[-s"$NVM_DIR/nvm.sh"]&&\."$NVM_DIR/nvm.sh"#这个加载nvm的意思是,我们需要在~/.bashrc,~/.bash_profile,~/.zshrc,~/.profile,四个文件中的任意一个添加这行nvm命令保存关闭,然后重启终端,就可以使用nvm命令v035.3版本的使用说明如下,可以直接在官网安装最新版本的nvm,贴上最新版本的使用说明(以下是官网提供的说明,也可以安装完成后使用上面打印的说明):exportNVM_DIR="$([-z"${XDG_CONFIG_HOME-}"]&&printf%s"${HOME}/.nvm"||printf%s"${XDG_CONFIG_HOME}/nvm")""-s"$NVM_DIR/nvm.sh"]&&\."$NVM_DIR/nvm.sh"#这个加载nvm建议在这里创建~/.bash_profile。如果有的话直接在最后添加上面的代码,然后执行source~/.bash_profile,重新加载这个文件后,nvm就可以正常使用了。安装失败上面的说法可能是因为网络问题导致安装失败。此时可以进入nvm官方教程(其实就是一个github页面),里面会有多种安装方法(不过最后好像需要clonenvm仓库,我们可以手动clone仓库).不过也有可能是github打不开,所以我们也打开国内的“github”——码云搜索nvm-sh,找到热心网友从github上克隆出来的项目,同样使用。下面简单介绍一下比较简单的:Git安装:进入~目录,使用git克隆nvm仓库:cd~/gitclonehttps://github.com/nvm-sh/nvm.git.nvmenter,切换到最新版本分支(其实是最新分支,可以去官网看看):cd.nvmgitcheckoutv0.38.0执行安装命令,这个命令是即时执行的:。./nvm.sh最后,点击几个文件中的任意一个,~/.bashrc、~/.profile或~/.zshrc,粘贴以下代码:exportNVM_DIR="$HOME/.nvm"[-s"$NVM_DIR/nvm.sh"]&&\."$NVM_DIR/nvm.sh"#这会加载nvm[-s"$NVM_DIR/bash_completion"]&&\."$NVM_DIR/bash_completion"#这个加载nvmbash_completion最后让系统重新读取这个文件,比如这个放入~/.bashrc文件,然后执行:source~/.bashrciscomplete,就可以使用nvm了现在。nvm的主要使用是如下指令:功能指令列出当前安装的节点,可安装的lts(长期支持稳定版)版本nvmls列出所有远程服务器的版本nvmls-remote安装指定版本,其中可以模糊安装,建议安装前检查,如nvminstallv11.11.0nvminstall安装最新的稳定版本nodenvminstallstable删除安装的指定版本,语法类似installnvmuninstall设置默认版本并打开终端使用的版本nvmaliasdefault为不同的版本号添加别名nvmalias取消别名nvmunalias切换当前终端使用的版本,但只对当前终端有效,不影响其他nvmuse显示当前版本nvmcurrentdeletet他定义了aliasnvmunalias在当前版本node环境下,全局重新安装指定版本号的npm包nvmreinstall-packages使用终端进入不同目录,avn自动切换node版本的功能本来是不需要的,但是最近几年发现,当业务和项目太多的时候,可能真的需要。例如,接收到的项目可能使用了各种版本的node;公司开发的项目使用固定版本的node;偶尔自己研究一些新技术,可能会用到最新的版本。本来是进入某个项目,所以用nvmuse来切换,但是总的来说很麻烦,每次打开终端都要这样。在网上搜索了一下,找到了这个工具:avn。首先,打开一个新终端并确保您使用的是默认版本的节点。这是因为在nvm中,不同node版本下安装的全局依赖是没有关联的。该工具基于节点。我们只需要默认在node下全局安装即可。当你每次使用终端进入不同的目录时,node默认是版本,然后会自动执行切换到你接下来要指定的node版本。打开终端后,先全局安装:npminstall-gavn-nvmavn-n然后启动这个工具:avnsetup注意:不知道为什么,可以开始使用node^11.11.0安装的依赖,但使用node^12.21.0,它仍然是一个长期支持版本。使用该版本安装依赖,启动时if(cb)cb.apply(this,arguments)会报错。很奇怪,不过你可以在v11.11.0下使用,安装依赖启动,然后切换node版本不会影响。如果有效果,安装其他版本下的依赖。接下来进入需要自定义node版本的项目,新建一个.node-version文件,直接写入你需要的node版本的内容,例如:这个node版本需要你用nvm安装,否则会报告错误avncouldnotactivatenodev14.15.0。v14.16.0然后,重启本项目下的终端,会出现提示:avnactivatedv14.16.0via../.node-version(avn-nvmv14.16.0)此时本终端使用的节点为v14.16.0起。优化:但是上面的方法需要在每个自定义node版本的项目中都添加这个文件,非常不友好。其实我们可以把这个文件放在这个项目的父目录下,它也会生效。这样所有使用相同node版本的项目都放在这个文件夹下,非常友好。