背景:
闲来无事想玩玩electronjs,第一步需要升级node为最新版本,想了想之前看好像说node16即将停止维护了,nodejs18更换了最新的引擎,性能提升很大,那就开始升级吧...
问题
结果electronjs还没开始研究呢,angular8+项目无法启动了,npm start启动项目的时候发现了报错:
解决历程
本着chatgpt盛行的时代,问了问ai,结果ai给的解决办法是:
当我照着执行之后发现,诶问题解决了,然而...过了一阵子之后我重新启动该项目的时候又出现之前的报错了,于是乎,我又按照ai给的办法来了一遍 ,这时候不起作用了...我认为是webpack版本太低了,于是升级了webpack,然而报了更多的错...
最终解决方案
此时我开始寻找解决方法了,后来发现是nodejs17之后版本都不支持openssl的一个加密算法,需要再系统环境变量中配置 NODE_OPTIONS=--openssl-legacy-provider
配置完成之后记得重启系统哦!
此时在powershell(管理员模式)查看$env:NODE_OPTIONS,可以查到以下内容,说明配置成功
在powershell中npm start我的angular8项目已经可以正常启动了
然而此时,从vscode终端启动项目还是报之前同样的错误,在vscode终端输入命令$env:NODE_OPTIONS,输出为空,说明vscode中并未加载到正确的环境变量,此时我们习惯了使用vscode终端启动项目,那该怎么办呢???
我们需要在vscode中同样配置环境变量:
crtl+shift+p 打开命令面板的快捷键,寻找"Preferences: Open User Settings"打开用户设置,
在用户设置中,搜索 "terminal.integrated.env",然后点击 "Edit in settings.json" 添加你的环境变量
由于本人是windows系统,因此打开对应的setting.json添加你的环境变量,如下图:
重启vscode,问题解决,okk!!!