芝麻博客·单人主站 - node
type: channel
link: https://blog.zmdew.top/index.php/tag/node/
items: 记nvm安装过程

记nvm安装过程
type: item
date: 2024-05-11T10:25:00+08:00
description: 因为需要申请专利，我打开了公司2年前的项目，运行发现报错Error: error:0308010C:digital envelope routines::unsupported，百度之后发现是因为nodejs17以上加了个OpenSSL3.0, 而OpenSSL3.0对允许算法和密钥大小增加了严格的限制，可能会对生态系统造成一些影响.在node.js V17以前一些可以正常运行的的应用程序,但是在 V17 版本可能会抛出这个异常。解决方案：1、降级，2、配置参数第二套方案在我之前写的文章中有配置{cat_insidepost id="105"}这个方案治标不治本，所以我这次选择了降级。但是单纯降级会导致其他问题，比如node包装不了，有些项目运行不起来。所以我决定采用nvm管理器，管理nodejs版本。安装流程：一、卸载自己用的nodejs（卸载前最好记住版本号）打开控制面板 -> 打开程序和功能 -> 右上角搜索输入node -> 右键卸载为了确保彻底删除node在看看你的node安装目录中还有没有node文件夹，有的话一起删除。再看看C:\Users\用户名 文件夹下有没有.npmrc以及.yarnrc等等统统删除。再去看看你的环境变量有没有node相关的，有的话也一起删除了。二、安装nvm{cat_usercard title="github下载地址" url="https://github.com/coreybutler/nvm-windows/releases" desc="nvm github下载地址" logo=""}{cat_usercard title="国内gitcode下载地址（版本落后）" url="https://gitcode.com/coreybutler/nvm-windows/tags/1.1.9" desc="国内gitcode下载地址（版本落后）" logo=""}{cat_tips_info color=""}找到 nvm-setup.exe 点击下载点击安装，一路next就行，记得要记住nvm和nodejs的安装位置打开cmd，输入nvm -v查看是否有版本号，有则安装成功{/cat_tips_info}三、配置淘宝源找到nvm安装路径 -> 找到 settings.txt 文件 -> 配置下载源 root:C:\Users\admin\AppData\Roaming\nvm（nvm的安装位置） path:C:\Program Files\nodejs（nodejs安装位置） arch: 64（系统位数） proxy: none node_mirror: https://npmmirror.com/mirrors/node/ npm_mirror: https://npmmirror.com/mirrors/npm/四、接下来就是我遇到的问题前面安装一路都没问题，我就继续安装不同版本的nodejs了，结果安装后nvm list能显示不同版本号，但是nvm use无法切换版本。在百度搜索过后发现是nodejs的位置问题，所以接下来要换一种安装方式：1.打开nvm的安装路径， 我的是：C:\Users\admin\AppData\Roaming\nvm,在这路径下新建一个空的文件夹,名称 nodejs，文件夹下面不要放任何东西，保持为空即可。2.打开环境变量，修改用户环境变量和系统环境变量，修改两个NVM_SYMLINK的值为：C:\Users\admin\AppData\Roaming\nvm\nodejs，确定-确定-确定。3.关闭之前打开的所有cmd(包括vscode)，并重新打开cmd： nvm uninstall v10.21.0 卸载掉之前安装的node，重新安装nvm intall 22.1.0 64-bit （安装的时候最后后面带上多少位版本）4.根据自己需要切换版本，至此我切换成功，也成功运行了旧代码额外知识：nvm的操作命令命令说明nvm list查看已经安装的版本nvm list installed查看已经安装的版本nvm list available查看网络可以安装的版本nvm arch查看当前系统的位数和当前nodejs的位数nvm install [arch]安装制定版本的node 并且可以指定平台 version 版本号 arch 平台nvm on打开nodejs版本控制nvm off关闭nodejs版本控制nvm proxy [url]查看和设置代理nvm node_mirror [url]设置或者查看setting.txt中的node_mirror，如果不设置的默认是 https://nodejs.org/dist/nvm npm_mirror [url]…