电脑疑似使用错误Node.js版本 切换v16后运行react脚本仍识别为v17
问题根因
error:0308010C是Node.js 17及以上版本默认使用OpenSSL 3.0、不再兼容旧版加密算法导致的常见报错。你遇到的版本调用不一致问题,是Visual Studio Code进程启动时加载的环境变量未同步nvm的Node版本配置导致。
解决方案
- 优先执行最简单的修复:完全退出Visual Studio Code(注意不是仅关闭窗口,需右键系统托盘的VS Code图标选择退出),重启后重新打开项目,在VS Code内置终端执行
node -v确认版本是否正确。此问题90%以上的场景是因为修改nvm版本前VS Code已经启动,进程缓存了旧的环境变量,不会同步后续的nvm版本切换操作。 - 若重启后版本仍不正确,检查对应shell的配置文件(macOS常用
.zshrc,Windows/WSL/Linux常用.bashrc/.bash_profile),确认nvm初始化脚本已经写入配置文件,而非仅在临时终端会话中生效。 - 执行
nvm alias default 16.13.0将16.13.0设置为nvm默认版本,重启终端后再次验证,避免全局安装的Node 17优先级高于nvm管理的版本。可在VS Code内置终端执行which node查看当前调用的Node路径,正常路径应包含.nvm/versions/node/v16.13.0相关字段。 - 若不想降级Node版本,也可直接修改项目
package.json中的启动脚本规避报错:将原"start": "react-scripts start"修改为"start": "NODE_OPTIONS=--openssl-legacy-provider react-scripts start",即可在Node 17+版本下正常启动项目。
内容的提问来源于stack exchange,提问作者sebastianTheCoder
相关产品推荐
相关产品推荐

