取消设置 NODE_OPTIONS 环境变量
打开您的终端并运行与你的shell类型相对应的命令。
# 👇️ for macOS, Linux or Windows Git Bash
unset NODE_OPTIONS
# -----------------------------------------
# 👇️ for Windows CMD (Command Prompt)
set NODE_OPTIONS=
# -----------------------------------------
# 👇️ for Windows PowerShell
[Environment]::SetEnvironmentVariable('NODE_OPTIONS', '', 'User')
[Environment]::SetEnvironmentVariable('NODE_OPTIONS', '', 'Machine')
删除变量后尝试重新运行npm
脚本或命令。 NODE_OPTIONS
验证NODE_OPTIONS
环境变量没有设置
您可以尝试打印NODE_OPTIONS
变量以确保没有输出。
# 👇️ Linux and macOS
echo $NODE_OPTIONS
# 👇️ on Windows with CMD
echo %NODE_OPTIONS%
# 👇️ on Windows with PowerShell
echo $Env:NODE_OPTIONS
请注意,参数的顺序很重要,--openssl-legacy-provider
最好排在最后,如下
"scripts": {
"start": "react-scripts start --openssl-legacy-provider",
删除您的 node_modules 并重新安装您的依赖项
这个时候可以重新运行一下,如果错误仍然存在,请尝试删除您的node_modules
和package-lock.json
(不是package.json
)文件,重新运行该npm install
命令并重新启动您的开发服务器。
如果您使用的是 Windows,请在CMD中执行以下命令。
rd /s /q "node_modules"
del package-lock.json
del -f yarn.lock
npm cache clean --force
npm install
如果您使用的是 macOS 或 Linux,请在bash
或zsh
中执行以下命令
rm -rf node_modules
rm -f package-lock.json
rm -f yarn.lock
npm cache clean --force
npm install
重新安装模块后尝试重新启动 IDE和开发服务器
降级到 Node.js 版本 16
如果这些建议都没有帮助,您可以尝试将您的 Node.js 版本降级到16
.
--openssl-legacy-provider
使用最新版本的 Node.js 时需要 该选项,因为Node.js 17 及更高版本使用 OpenSSL 3.0 ,它有一些重大变化。
如果您使用 NVM ,则可以发出以下命令将 Node.js 版本降级到 16.13.0
。
nvm install 16
nvm use 16
如果在降级到 Node 版本 16 后仍然出现错误,请尝试删除你的node_modules
and package-lock.json
,重新运行npm install
命令并重新启动你的开发服务器。